changeset 7116:49118d3b033a

Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt
author kcr
date Thu, 22 May 2014 19:22:01 -0700
parents b965ad2d71cf 74193e2f1800
children 9f221ab57e22
files modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ProgressBarBehavior.java modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ProgressIndicatorBehavior.java modules/graphics/src/main/java/com/sun/javafx/css/BorderPaint.java
diffstat 261 files changed, 10992 insertions(+), 5677 deletions(-) [+]
line wrap: on
line diff
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java	Thu May 22 19:22:01 2014 -0700
@@ -183,23 +183,13 @@
         @Override
         public void messageBoxDidGetMessage(MessageBoxMessage message) {
             assert Platform.isFxApplicationThread() == false;
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    eventHandler.handleOpenFilesAction(message);
-                }
-            });
+            Platform.runLater(() -> eventHandler.handleOpenFilesAction(message));
         }
 
         @Override
         public void messageBoxDidCatchException(Exception x) {
             assert Platform.isFxApplicationThread() == false;
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    eventHandler.handleMessageBoxFailure(x);
-                }
-            });
+            Platform.runLater(() -> eventHandler.handleMessageBoxFailure(x));
         }
         
     } 
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java	Thu May 22 19:22:01 2014 -0700
@@ -73,19 +73,7 @@
         }
 
         // Need to delay the focus to the editor, so that the section is actually expanded first.
-        Platform.runLater(new Runnable() {
-            @Override
-            public void run() {
-                // Need to delay in frame +2 since the TitledPane is built in frame +1 when node selected.
-                // And positioning the scrollBar while the content is building does not work.
-                Platform.runLater(new Runnable() {
-                    @Override
-                    public void run() {
-                        inspectorController.setFocusToEditor(propMeta.getName());
-                    }
-                });
-            }
-        });
+        Platform.runLater(() -> Platform.runLater(() -> inspectorController.setFocusToEditor(propMeta.getName())));
     }
 
 }
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWatchingController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWatchingController.java	Thu May 22 19:22:01 2014 -0700
@@ -36,14 +36,15 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
 import com.oracle.javafx.scenebuilder.kit.util.FileWatcher;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 
 /**
@@ -66,13 +67,8 @@
         this.sceneStyleSheetMenuController = documentWindowController.getSceneStyleSheetMenuController();
         
         this.editorController.sceneStyleSheetProperty().addListener(
-                new ChangeListener<ObservableList<File>>() {
-                    @Override
-                    public void changed(ObservableValue<? extends ObservableList<File>> ov, 
-                            ObservableList<File> t, ObservableList<File> t1) {
-                        update();
-                    }
-                });
+                (ChangeListener<ObservableList<File>>) (ov, t,
+                        t1) -> update());
     }
     
     public void start() {
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -71,6 +71,7 @@
 import com.oracle.javafx.scenebuilder.kit.library.Library;
 import com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary;
 import com.sun.javafx.scene.control.behavior.KeyBinding;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -88,10 +89,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
 import javafx.beans.InvalidationListener;
-import javafx.beans.Observable;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -235,71 +235,67 @@
     private static List<String> videoExtensions;
     private static List<String> mediaExtensions;
 
-    private final EventHandler<KeyEvent> mainKeyEventFilter = new EventHandler<KeyEvent>() {
-
-        @Override
-        public void handle(KeyEvent event) {
-            //------------------------------------------------------------------
-            // TEXT INPUT CONTROL
-            //------------------------------------------------------------------
-            // Common editing actions handled natively and defined as application accelerators
-            // 
-            // The platform support is not mature/stable enough to rely on.
-            // Indeed, the behavior may differ :
-            // - when using system menu bar vs not using it
-            // - when using accelerators vs using menu items
-            // - depending on the focused control (TextField vs ComboBox)
-            // 
-            // On SB side, we decide for now to consume events that may be handled natively
-            // so ALL actions are defined in our ApplicationMenu class.
-            //
-            // This may be revisit when platform implementation will be more reliable.
-            //
-            final Node focusOwner = getScene().getFocusOwner();
-            final KeyCombination accelerator = getAccelerator(event);
-            if (isTextInputControlEditing(focusOwner) == true 
-                    && accelerator != null) {
-                for (KeyBinding binding : SBTextInputControlBindings.getBindings()) {
-                    // The event is handled natively
-                    if (binding.getSpecificity(null, event) > 0) {
-                        // 
-                        // When using system menu bar, the event is handled natively 
-                        // before the application receives it : we just consume the event 
-                        // so the editing action is not performed a second time by the app.
-                        if (menuBarController.getMenuBar().isUseSystemMenuBar()) {
-                            event.consume();
-                        }
-                        break;
+    private final EventHandler<KeyEvent> mainKeyEventFilter = event -> {
+        //------------------------------------------------------------------
+        // TEXT INPUT CONTROL
+        //------------------------------------------------------------------
+        // Common editing actions handled natively and defined as application accelerators
+        // 
+        // The platform support is not mature/stable enough to rely on.
+        // Indeed, the behavior may differ :
+        // - when using system menu bar vs not using it
+        // - when using accelerators vs using menu items
+        // - depending on the focused control (TextField vs ComboBox)
+        // 
+        // On SB side, we decide for now to consume events that may be handled natively
+        // so ALL actions are defined in our ApplicationMenu class.
+        //
+        // This may be revisit when platform implementation will be more reliable.
+        //
+        final Node focusOwner = getScene().getFocusOwner();
+        final KeyCombination accelerator = getAccelerator(event);
+        if (isTextInputControlEditing(focusOwner) == true 
+                && accelerator != null) {
+            for (KeyBinding binding : SBTextInputControlBindings.getBindings()) {
+                // The event is handled natively
+                if (binding.getSpecificity(null, event) > 0) {
+                    // 
+                    // When using system menu bar, the event is handled natively 
+                    // before the application receives it : we just consume the event 
+                    // so the editing action is not performed a second time by the app.
+                    if (menuBarController.getMenuBar().isUseSystemMenuBar()) {
+                        event.consume();
                     }
+                    break;
                 }
             }
+        }
 
-            //------------------------------------------------------------------
-            // Hierarchy TreeView + select all
-            //------------------------------------------------------------------
-            // Select all is handled natively by TreeView (= hierarchy panel control).
-            boolean modifierDown = (EditorPlatform.IS_MAC ? event.isMetaDown() : event.isControlDown());
-            boolean isSelectAll = KeyCode.A.equals(event.getCode()) && modifierDown;
-            if (getHierarchyPanelController().getPanelControl().isFocused() && isSelectAll) {
-                // Consume the event so the control action is not performed natively.
-                event.consume();
-                // When using system menu bar, the control action is performed by the app.
-                if (menuBarController.getMenuBar().isUseSystemMenuBar() == false) {
-                    if (canPerformControlAction(DocumentControlAction.SELECT_ALL)) {
-                        performControlAction(DocumentControlAction.SELECT_ALL);
-                    }
+        //------------------------------------------------------------------
+        // Hierarchy TreeView + select all
+        //------------------------------------------------------------------
+        // Select all is handled natively by TreeView (= hierarchy panel control).
+        boolean modifierDown = (EditorPlatform.IS_MAC ? event.isMetaDown() : event.isControlDown());
+        boolean isSelectAll = KeyCode.A.equals(event.getCode()) && modifierDown;
+        if (getHierarchyPanelController().getPanelControl().isFocused() && isSelectAll) {
+            // Consume the event so the control action is not performed natively.
+            event.consume();
+            // When using system menu bar, the control action is performed by the app.
+            if (menuBarController.getMenuBar().isUseSystemMenuBar() == false) {
+                if (canPerformControlAction(DocumentControlAction.SELECT_ALL)) {
+                    performControlAction(DocumentControlAction.SELECT_ALL);
                 }
             }
+        }
 
-            // MenuItems define a single accelerator.
-            // BACK_SPACE key must be handled same way as DELETE key.
-            boolean isBackspace = KeyCode.BACK_SPACE.equals(event.getCode());
-            if (isTextInputControlEditing(focusOwner) == false && isBackspace) {
-                if (canPerformEditAction(DocumentEditAction.DELETE)) {
-                    performEditAction(DocumentEditAction.DELETE);
-                }
-                event.consume();
+        // MenuItems define a single accelerator.
+        // BACK_SPACE key must be handled same way as DELETE key.
+        boolean isBackspace = KeyCode.BACK_SPACE.equals(event.getCode());
+        if (isTextInputControlEditing(focusOwner) == false && isBackspace) {
+            if (canPerformEditAction(DocumentEditAction.DELETE)) {
+                performEditAction(DocumentEditAction.DELETE);
             }
+            event.consume();
         }
     };
     
@@ -980,21 +976,9 @@
         messageBarController.getSelectionBarHost().getChildren().add(
                 selectionBarController.getPanelRoot());
         
-        inspectorSearchController.textProperty().addListener(new ChangeListener<String>() {
-
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String oldStr, String newStr) {
-                inspectorPanelController.setSearchPattern(newStr);
-            }
-        });
+        inspectorSearchController.textProperty().addListener((ChangeListener<String>) (ov, oldStr, newStr) -> inspectorPanelController.setSearchPattern(newStr));
         
-        librarySearchController.textProperty().addListener(new ChangeListener<String>() {
-
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String oldStr, String newStr) {
-                libraryPanelController.setSearchPattern(newStr);
-            }
-        });
+        librarySearchController.textProperty().addListener((ChangeListener<String>) (ov, oldStr, newStr) -> libraryPanelController.setSearchPattern(newStr));
         
         bottomSplitController = new SplitController(mainSplitPane, SplitController.Target.LAST);
         leftSplitController = new SplitController(leftRightSplitPane, SplitController.Target.FIRST);
@@ -1002,24 +986,15 @@
         librarySplitController = new SplitController(libraryDocumentSplitPane, SplitController.Target.FIRST);
         documentSplitController = new SplitController(libraryDocumentSplitPane, SplitController.Target.LAST);
         
-        messageBarHost.heightProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable o) {
-                final double h = messageBarHost.getHeight();
-                contentPanelHost.setPadding(new Insets(h, 0.0, 0.0, 0.0));
-            }
+        messageBarHost.heightProperty().addListener((InvalidationListener) o -> {
+            final double h = messageBarHost.getHeight();
+            contentPanelHost.setPadding(new Insets(h, 0.0, 0.0, 0.0));
         });
         
         documentAccordion.setExpandedPane(documentAccordion.getPanes().get(0));
         
         // Monitor the status of the document to set status icon accordingly in message bar
-        getEditorController().getJobManager().revisionProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                messageBarController.setDocumentDirty(isDocumentDirty());
-            }
-        });
+        getEditorController().getJobManager().revisionProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> messageBarController.setDocumentDirty(isDocumentDirty()));
         
         // Setup title of the Library Reveal menu item according the underlying o/s.
         final String revealMenuKey;
@@ -1035,30 +1010,26 @@
         
         // We need to tune the content of the library menu according if there's
         // or not a selection likely to be dropped onto Library panel.
-        libraryMenuButton.showingProperty().addListener(new ChangeListener<Boolean>() {
+        libraryMenuButton.showingProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> {
+            if (t1) {
+                AbstractSelectionGroup asg = getEditorController().getSelection().getGroup();
+                libraryImportSelection.setDisable(true);
 
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                if (t1) {
-                    AbstractSelectionGroup asg = getEditorController().getSelection().getGroup();
-                    libraryImportSelection.setDisable(true);
-
-                    if (asg instanceof ObjectSelectionGroup) {
-                        if (((ObjectSelectionGroup)asg).getItems().size() >= 1) {
-                            libraryImportSelection.setDisable(false);
-                        }
+                if (asg instanceof ObjectSelectionGroup) {
+                    if (((ObjectSelectionGroup)asg).getItems().size() >= 1) {
+                        libraryImportSelection.setDisable(false);
                     }
-                    
-                    // DTL-6439. The custom library menu shall be enabled only
-                    // in the case there is a user library directory on disk.
-                    Library lib = getEditorController().getLibrary();
-                    if (lib instanceof UserLibrary) {
-                        File userLibDir = new File(((UserLibrary)lib).getPath());
-                        if (userLibDir.canRead()) {
-                            customLibraryMenu.setDisable(false);
-                        } else {
-                            customLibraryMenu.setDisable(true);
-                        }
+                }
+                
+                // DTL-6439. The custom library menu shall be enabled only
+                // in the case there is a user library directory on disk.
+                Library lib = getEditorController().getLibrary();
+                if (lib instanceof UserLibrary) {
+                    File userLibDir = new File(((UserLibrary)lib).getPath());
+                    if (userLibDir.canRead()) {
+                        customLibraryMenu.setDisable(false);
+                    } else {
+                        customLibraryMenu.setDisable(true);
                     }
                 }
             }
@@ -1763,13 +1734,7 @@
     }
     
     private void addCssPanelSearchListener() {
-        cssPanelSearchController.textProperty().addListener(new ChangeListener<String>() {
-
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String oldStr, String newStr) {
-                cssPanelController.setSearchPattern(newStr);
-            }
-        });
+        cssPanelSearchController.textProperty().addListener((ChangeListener<String>) (ov, oldStr, newStr) -> cssPanelController.setSearchPattern(newStr));
     }
     
     private void performGoToSection(SectionId sectionId) {
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java	Thu May 22 19:22:01 2014 -0700
@@ -50,6 +50,7 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.Metadata;
 import com.oracle.javafx.scenebuilder.kit.util.Deprecation;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPicker;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
@@ -65,10 +66,10 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+
 import javafx.application.Application;
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.stage.FileChooser;
 import javafx.stage.Stage;
 
@@ -142,21 +143,13 @@
         /*
          * We spawn our two threads for handling background startup.
          */
-        final Runnable p0 = new Runnable() {
-            @Override
-            public void run() {
-                backgroundStartPhase0();
-            }
-        };
-        final Runnable p1 = new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    launchLatch.await();
-                    backgroundStartPhase2();
-                } catch(InterruptedException x) {
-                    // JavaFX thread has been interrupted. Simply exits.
-                }
+        final Runnable p0 = () -> backgroundStartPhase0();
+        final Runnable p1 = () -> {
+            try {
+                launchLatch.await();
+                backgroundStartPhase2();
+            } catch(InterruptedException x) {
+                // JavaFX thread has been interrupted. Simply exits.
             }
         };
         final Thread phase0 = new Thread(p0, "Phase 0"); //NOI18N
@@ -401,13 +394,7 @@
         // Creates the user library
         userLibrary = new UserLibrary(AppPlatform.getUserLibraryFolder());
         
-        userLibrary.explorationCountProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                userLibraryExplorationCountDidChange();
-            }
-        });
+        userLibrary.explorationCountProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> userLibraryExplorationCountDidChange());
         
         userLibrary.startWatching();
         
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -44,15 +44,16 @@
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMInstance;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
 import com.oracle.javafx.scenebuilder.kit.glossary.Glossary;
+
 import java.net.URL;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.collections.ListChangeListener;
 import javafx.fxml.FXML;
@@ -197,35 +198,21 @@
         controllerAndCogHBox.getChildren().add(controllerClassEditor.getMenu());
 
         // Need to react each time value of fx controller is changed (direct user input)
-        controllerClassEditor.valueProperty().addListener(new ChangeListener<Object>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object t, Object t1) {
-                InfoPanelController.this.updateControllerAndControllerClassEditor((String)t1);
-            }
-        });
+        controllerClassEditor.valueProperty().addListener((ChangeListener<Object>) (ov, t, t1) -> InfoPanelController.this.updateControllerAndControllerClassEditor((String)t1));
 
         // We e.g. an Untitled document is saved we need to trigger a scan for
         // potential controller classes.
-        getEditorController().fxmlLocationProperty().addListener(new ChangeListener<URL>() {
-
-            @Override
-            public void changed(ObservableValue<? extends URL> ov, URL t, URL t1) {
-                if (t1 != null) {
-                    resetSuggestedControllerClasses(t1);
-                }
+        getEditorController().fxmlLocationProperty().addListener((ChangeListener<URL>) (ov, t, t1) -> {
+            if (t1 != null) {
+                resetSuggestedControllerClasses(t1);
             }
         });
         
         // DTL-6626
-        controllerClassEditor.getTextField().focusedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                if (!t1) {
-                    // Focus loss triggers an update. The text field can be empty.
-                    updateControllerAndControllerClassEditor(controllerClassEditor.getTextField().getText());
-                }
+        controllerClassEditor.getTextField().focusedProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> {
+            if (!t1) {
+                // Focus loss triggers an update. The text field can be empty.
+                updateControllerAndControllerClassEditor(controllerClassEditor.getTextField().getText());
             }
         });
 
@@ -391,12 +378,7 @@
     }
     
     private final ListChangeListener<IndexEntry> tableViewSelectionListener
-        = new ListChangeListener<IndexEntry>() {
-            @Override
-            public void onChanged(ListChangeListener.Change<? extends IndexEntry> change) {
-                tableSelectionDidChange();
-            }
-        };
+        = change -> tableSelectionDidChange();
     
     private void tableSelectionDidChange() {
         final TableView<IndexEntry> tableView = leftTableColumn.getTableView();
@@ -484,26 +466,16 @@
         return false;
     }
     
-    private final ChangeListener<Boolean> checkBoxListener = new ChangeListener<Boolean>() {
-
-        @Override
-        public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-            toggleFxRoot();
-        }
-    };
+    private final ChangeListener<Boolean> checkBoxListener = (ov, t, t1) -> toggleFxRoot();
 
     private void resetSuggestedControllerClasses(URL location) {
         if (controllerClassEditor != null) {
             // The listener on fxmlLocationProperty is called before the file
             // denoted by the location is created on disk, hence the runLater.
-            Platform.runLater(new Runnable() {
-
-                @Override
-                public void run() {
-                    controllerClassEditor.setUpdateFromModel(true);
-                    controllerClassEditor.reset(getSuggestedControllerClasses(location));
-                    controllerClassEditor.setUpdateFromModel(false);
-                }
+            Platform.runLater(() -> {
+                controllerClassEditor.setUpdateFromModel(true);
+                controllerClassEditor.reset(getSuggestedControllerClasses(location));
+                controllerClassEditor.setUpdateFromModel(false);
             });
         }
     }
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java	Thu May 22 19:22:01 2014 -0700
@@ -42,12 +42,11 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.ErrorDialog;
 import com.oracle.javafx.scenebuilder.kit.util.MathUtils;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
-import javafx.event.ActionEvent;
-import javafx.event.Event;
-import javafx.event.EventHandler;
+
 import javafx.geometry.Point2D;
 import javafx.scene.Node;
 import javafx.scene.Parent;
@@ -74,12 +73,7 @@
         final MenuItem libraryFolderMenuItem 
                 = new MenuItem();
         libraryFolderMenuItem.setText(applicationDataFolder);
-        libraryFolderMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                handleRevealPath(applicationDataFolder);
-            }
-        });
+        libraryFolderMenuItem.setOnAction(t -> handleRevealPath(applicationDataFolder));
         
         final Menu libraryFolderMenu = new Menu("Application Data Folder"); //NOI18N
         libraryFolderMenu.getItems().add(libraryFolderMenuItem);
@@ -90,15 +84,12 @@
         final MenuItem layoutMenuItem 
                 = new MenuItem();
         layoutMenuItem.setText("Check \"localToSceneTransform Properties\" in Content Panel"); //NOI18N
-        layoutMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                System.out.println("CHECK LOCAL TO SCENE TRANSFORM BEGINS"); //NOI18N
-                final ContentPanelController cpc 
-                        = DebugMenuController.this.documentWindowController.getContentPanelController();
-                checkLocalToSceneTransform(cpc.getPanelRoot());
-                System.out.println("CHECK LOCAL TO SCENE TRANSFORM ENDS"); //NOI18N
-            }
+        layoutMenuItem.setOnAction(t -> {
+            System.out.println("CHECK LOCAL TO SCENE TRANSFORM BEGINS"); //NOI18N
+            final ContentPanelController cpc 
+                    = DebugMenuController.this.documentWindowController.getContentPanelController();
+            checkLocalToSceneTransform(cpc.getPanelRoot());
+            System.out.println("CHECK LOCAL TO SCENE TRANSFORM ENDS"); //NOI18N
         });
                 
         /*
@@ -106,22 +97,12 @@
          */
         final MenuItem useDefaultThemeMenuItem = new MenuItem();
         useDefaultThemeMenuItem.setText("Use Default Theme"); //NOI18N
-        useDefaultThemeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                SceneBuilderApp.getSingleton().performControlAction(SceneBuilderApp.ApplicationControlAction.USE_DEFAULT_THEME, 
-                        DebugMenuController.this.documentWindowController);
-            }
-        });
+        useDefaultThemeMenuItem.setOnAction(t -> SceneBuilderApp.getSingleton().performControlAction(SceneBuilderApp.ApplicationControlAction.USE_DEFAULT_THEME, 
+                DebugMenuController.this.documentWindowController));
         final MenuItem useDarkThemeMenuItem = new MenuItem();
         useDarkThemeMenuItem.setText("Use Dark Theme"); //NOI18N
-        useDarkThemeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                SceneBuilderApp.getSingleton().performControlAction(SceneBuilderApp.ApplicationControlAction.USE_DARK_THEME, 
-                        DebugMenuController.this.documentWindowController);
-            }
-        });
+        useDarkThemeMenuItem.setOnAction(t -> SceneBuilderApp.getSingleton().performControlAction(SceneBuilderApp.ApplicationControlAction.USE_DARK_THEME, 
+                DebugMenuController.this.documentWindowController));
         
         /*
          * Undo/redo stack
@@ -129,12 +110,9 @@
         final Menu undoRedoStack = new Menu();
         undoRedoStack.setText("Undo/Redo Stack"); //NOI18N
         undoRedoStack.getItems().add(makeMenuItem("Dummy", true)); //NOI18N
-        undoRedoStack.setOnMenuValidation(new EventHandler<Event>() {
-            @Override
-            public void handle(Event t) {
-                assert t.getTarget() instanceof Menu;
-                undoRedoStackMenuShowing((Menu) t.getTarget());
-            }
+        undoRedoStack.setOnMenuValidation(t -> {
+            assert t.getTarget() instanceof Menu;
+            undoRedoStackMenuShowing((Menu) t.getTarget());
         });
                 
         menu.getItems().add(libraryFolderMenu);
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java	Thu May 22 19:22:01 2014 -0700
@@ -52,6 +52,7 @@
 import com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary;
 import com.oracle.javafx.scenebuilder.kit.util.MathUtils;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPicker;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
@@ -63,8 +64,8 @@
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.event.Event;
@@ -604,12 +605,7 @@
         newComplexAppI18nMenuItem.setUserData(new ApplicationControlActionController(ApplicationControlAction.NEW_COMPLEX_APPLICATION_I18N));
         openMenuItem.setUserData(new ApplicationControlActionController(ApplicationControlAction.OPEN_FILE));
         openMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.O, modifier));
-        openRecentMenu.setOnShowing(new EventHandler<Event>() {
-            @Override
-            public void handle(Event t) {
-                updateOpenRecentMenuItems();
-            }
-        });
+        openRecentMenu.setOnShowing(t -> updateOpenRecentMenuItems());
         saveMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.SAVE_FILE));
         saveMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.S, modifier));
         saveAsMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.SAVE_AS_FILE));
@@ -943,15 +939,11 @@
         addSceneStyleSheetMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.ADD_SCENE_STYLE_SHEET));
         updateOpenAndRemoveSceneStyleSheetMenus();
         if (documentWindowController != null) {
-            this.documentWindowController.getEditorController().sceneStyleSheetProperty().addListener(new ChangeListener<ObservableList<File>>() {
-
-                @Override
-                public void changed(ObservableValue<? extends ObservableList<File>> ov, ObservableList<File> t, ObservableList<File> t1) {
-                    if (t1 != null) {
-                        updateOpenAndRemoveSceneStyleSheetMenus();
-                        setupMenuItemHandlers(removeSceneStyleSheetMenu);
-                        setupMenuItemHandlers(openSceneStyleSheetMenu);
-                    }
+            this.documentWindowController.getEditorController().sceneStyleSheetProperty().addListener((ChangeListener<ObservableList<File>>) (ov, t, t1) -> {
+                if (t1 != null) {
+                    updateOpenAndRemoveSceneStyleSheetMenus();
+                    setupMenuItemHandlers(removeSceneStyleSheetMenu);
+                    setupMenuItemHandlers(openSceneStyleSheetMenu);
                 }
             });
         }
@@ -1040,13 +1032,10 @@
     }
 
     private final EventHandler<Event> onMenuValidationEventHandler
-            = new EventHandler<Event>() {
-                @Override
-                public void handle(Event t) {
-                    assert t.getSource() instanceof Menu;
-                    handleOnMenuValidation((Menu) t.getSource());
-                }
-            };
+            = t -> {
+        assert t.getSource() instanceof Menu;
+        handleOnMenuValidation((Menu) t.getSource());
+    };
 
     private void handleOnMenuValidation(Menu menu) {
         for (MenuItem i : menu.getItems()) {
@@ -1093,13 +1082,10 @@
     }
 
     private final EventHandler<ActionEvent> onActionEventHandler
-            = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent t) {
-                    assert t.getSource() instanceof MenuItem;
-                    handleOnActionMenu((MenuItem) t.getSource());
-                }
-            };
+            = t -> {
+        assert t.getSource() instanceof MenuItem;
+        handleOnActionMenu((MenuItem) t.getSource());
+    };
 
     private void handleOnActionMenu(MenuItem i) {
         assert i.getUserData() instanceof MenuItemController;
@@ -1172,13 +1158,9 @@
                         assert recentItemsNames.get(name) == 1;
                         mi = new MenuItem(name);
                     }
-                    mi.setOnAction(new EventHandler<ActionEvent>() {
-
-                        @Override
-                        public void handle(ActionEvent t) {
-                            final File file = new File(recentItem);
-                            SceneBuilderApp.getSingleton().performOpenRecent(documentWindowController, file);
-                        }
+                    mi.setOnAction(t -> {
+                        final File file = new File(recentItem);
+                        SceneBuilderApp.getSingleton().performOpenRecent(documentWindowController, file);
                     });
                     menuItems.add(mi);
                 }
@@ -1231,13 +1213,10 @@
      * Private (insert menu)
      */
     private final EventHandler<Event> onCustomPartOfInsertMenuValidationHandler
-            = new EventHandler<Event>() {
-                @Override
-                public void handle(Event t) {
-                    assert t.getSource() == insertMenu;
-                    updateCustomPartOfInsertMenu();
-                }
-            };
+            = t -> {
+        assert t.getSource() == insertMenu;
+        updateCustomPartOfInsertMenu();
+    };
     
     private void updateCustomPartOfInsertMenu() {
         assert insertMenu != null;
@@ -1309,12 +1288,7 @@
     private Menu makeMenuForLibrarySection(String section) {
         final Menu result = new Menu();
         result.setText(section);
-        result.setOnShowing(new EventHandler<Event>() {
-            @Override
-            public void handle(Event t) {
-                updateInsertMenuState(result);
-            }
-        });
+        result.setOnShowing(t -> updateInsertMenuState(result));
         return result;
     }
 
@@ -1323,12 +1297,7 @@
 
         result.setText(li.getName());
         result.setUserData(li);
-        result.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent t) {
-                handleInsertMenuAction(li);
-            }
-        });
+        result.setOnAction(t -> handleInsertMenuAction(li));
         return result;
     }
 
@@ -1382,13 +1351,10 @@
      * Private (window menu)
      */
     private final EventHandler<Event> onWindowMenuValidationHandler
-            = new EventHandler<Event>() {
-                @Override
-                public void handle(Event t) {
-                    assert t.getSource() == windowMenu;
-                    handleOnWindowMenuValidation();
-                }
-            };
+            = t -> {
+        assert t.getSource() == windowMenu;
+        handleOnWindowMenuValidation();
+    };
 
     private void handleOnWindowMenuValidation() {
         windowMenu.getItems().clear();
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java	Thu May 22 19:22:01 2014 -0700
@@ -36,12 +36,12 @@
 import com.oracle.javafx.scenebuilder.kit.editor.messagelog.MessageLogEntry;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlPanelController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+
 import java.net.URL;
+
 import javafx.animation.FadeTransition;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
@@ -154,22 +154,14 @@
         
         // Listens to the message log 
         getEditorController().getMessageLog().revisionProperty().addListener(
-                new ChangeListener<Number>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                        messageLogDidChange();
+                (ChangeListener<Number>) (ov, t, t1) -> messageLogDidChange());
+        getEditorController().getMessageLog().numOfWarningMessagesProperty().addListener(
+                (ChangeListener<Number>) (ov, t, t1) -> {
+                    String numberOfMessages = Integer.toString(t1.intValue());
+                    if (t1.intValue() > 9) {
+                        numberOfMessages = "*"; //NOI18N
                     }
-                });
-        getEditorController().getMessageLog().numOfWarningMessagesProperty().addListener(
-                new ChangeListener<Number>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                        String numberOfMessages = Integer.toString(t1.intValue());
-                        if (t1.intValue() > 9) {
-                            numberOfMessages = "*"; //NOI18N
-                        }
-                        messageButton.setText(numberOfMessages);
-                    }
+                    messageButton.setText(numberOfMessages);
                 });
         
         statusLabelTooltip = statusLabel.getTooltip();
@@ -234,23 +226,19 @@
             showHost.setFromValue(1.0);
             showHost.setToValue(0.0);
             showHost.setDelay(Duration.seconds(3)); // DTL-5073
-            showHost.setOnFinished(new EventHandler<ActionEvent>() {
-
-                @Override
-                public void handle(ActionEvent t) {
-                    messageLabel.setVisible(false);
-                    messageLabel.setGraphic(null);
-                    messageLabel.setManaged(false);
-                    if (getEditorController().getMessageLog().getWarningEntryCount() == 0) {
-                        messageButton.setVisible(false);
-                        messageButton.setManaged(false);
-                    }
-                    resetStyle();
-                    getSelectionBarHost().setManaged(true);
-                    getSelectionBarHost().setVisible(true);
-                    messagePart.setOpacity(1.0);
-                    HBox.setHgrow(messagePart, Priority.NEVER);
+            showHost.setOnFinished(t -> {
+                messageLabel.setVisible(false);
+                messageLabel.setGraphic(null);
+                messageLabel.setManaged(false);
+                if (getEditorController().getMessageLog().getWarningEntryCount() == 0) {
+                    messageButton.setVisible(false);
+                    messageButton.setManaged(false);
                 }
+                resetStyle();
+                getSelectionBarHost().setManaged(true);
+                getSelectionBarHost().setVisible(true);
+                messagePart.setOpacity(1.0);
+                HBox.setHgrow(messagePart, Priority.NEVER);
             });
             showHost.play();
         } else if (getEditorController().getMessageLog().getEntryCount() == 0) {
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -36,10 +36,9 @@
 import com.oracle.javafx.scenebuilder.kit.editor.messagelog.MessageLogEntry;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlPanelController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.geometry.Pos;
 import javafx.scene.control.Button;
@@ -122,12 +121,7 @@
                 
         // Listens to the message log 
         getEditorController().getMessageLog().revisionProperty().addListener(
-                new ChangeListener<Number>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                        messageLogDidChange();
-                    }
-                });
+                (ChangeListener<Number>) (ov, t, t1) -> messageLogDidChange());
         
         updateScrollPaneWidth();
         messageLogDidChange();
@@ -147,13 +141,7 @@
         for (MessageLogEntry mle : getEditorController().getMessageLog().getEntries()) {
             if (mle.getType() == MessageLogEntry.Type.WARNING) {
                 Button dismissButton = new Button("x"); //NOI18N
-                dismissButton.addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler<MouseEvent>() {
-
-                    @Override
-                    public void handle(MouseEvent t) {
-                        getEditorController().getMessageLog().clearEntry(mle);
-                    }
-                });
+                dismissButton.addEventHandler(MouseEvent.MOUSE_RELEASED, t -> getEditorController().getMessageLog().clearEntry(mle));
                 StackPane paneForButton = new StackPane();
                 paneForButton.getChildren().add(dismissButton);
                 paneForButton.setAlignment(Pos.CENTER_RIGHT);
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java	Thu May 22 19:22:01 2014 -0700
@@ -33,6 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.app.DocumentWindowController;
 import com.oracle.javafx.scenebuilder.app.SplitController;
+
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.BOTTOM_DIVIDER_VPOS;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.BOTTOM_VISIBLE;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.DOCUMENT_VISIBLE;
@@ -50,9 +51,11 @@
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.STAGE_WIDTH;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.X_POS;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.Y_POS;
+
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.InspectorPanelController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.InspectorPanelController.SectionId;
+
 import java.io.File;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -63,8 +66,8 @@
 import java.util.logging.Logger;
 import java.util.prefs.BackingStoreException;
 import java.util.prefs.Preferences;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
 import javafx.scene.control.Accordion;
@@ -117,37 +120,11 @@
     private final Preferences documentsRootPreferences; // preference root node for all documents records
     private final DocumentWindowController documentWindowController;
 
-    private final ChangeListener<Number> leftDividerHListener = new ChangeListener<Number>() {
-        @Override
-        public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-            setLeftDividerHPos(t1.doubleValue());
-        }
-    };
-    private final ChangeListener<Number> rightDividerHListener = new ChangeListener<Number>() {
-        @Override
-        public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-            setRightDividerHPos(t1.doubleValue());
-        }
-    };
-    private final ChangeListener<Number> bottomDividerVListener = new ChangeListener<Number>() {
-        @Override
-        public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-            setBottomDividerVPos(t1.doubleValue());
-        }
-    };
-    private final ChangeListener<Number> leftDividerVListener = new ChangeListener<Number>() {
-        @Override
-        public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-            setLeftDividerVPos(t1.doubleValue());
-        }
-    };
-    private final ChangeListener<ObservableList<File>> sceneStyleSheetsListener = new ChangeListener<ObservableList<File>>() {
-
-        @Override
-        public void changed(ObservableValue<? extends ObservableList<File>> ov, ObservableList<File> t, ObservableList<File> t1) {
-            setSceneStyleSheets(t1);
-        }
-    };
+    private final ChangeListener<Number> leftDividerHListener = (ov, t, t1) -> setLeftDividerHPos(t1.doubleValue());
+    private final ChangeListener<Number> rightDividerHListener = (ov, t, t1) -> setRightDividerHPos(t1.doubleValue());
+    private final ChangeListener<Number> bottomDividerVListener = (ov, t, t1) -> setBottomDividerVPos(t1.doubleValue());
+    private final ChangeListener<Number> leftDividerVListener = (ov, t, t1) -> setLeftDividerVPos(t1.doubleValue());
+    private final ChangeListener<ObservableList<File>> sceneStyleSheetsListener = (ov, t, t1) -> setSceneStyleSheets(t1);
 
     public PreferencesRecordDocument(Preferences documentsRootPreferences, DocumentWindowController dwc) {
         this.documentWindowController = dwc;
@@ -156,49 +133,19 @@
         // Add stage X and Y listeners
         final Stage stage = documentWindowController.getStage();
         assert stage != null;
-        stage.xProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                setXPos(t1.doubleValue());
-            }
-        });
-        stage.yProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                setYPos(t1.doubleValue());
-            }
-        });
+        stage.xProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> setXPos(t1.doubleValue()));
+        stage.yProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> setYPos(t1.doubleValue()));
 
         // Add stage height and width listeners
-        stage.heightProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                setStageHeight(t1.doubleValue());
-            }
-        });
-        stage.widthProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                setStageWidth(t1.doubleValue());
-            }
-        });
+        stage.heightProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> setStageHeight(t1.doubleValue()));
+        stage.widthProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> setStageWidth(t1.doubleValue()));
 
         // Add inspector accordion expanded pane listener
         final InspectorPanelController ipc = documentWindowController.getInspectorPanelController();
         assert ipc != null;
         final Accordion accordion = ipc.getAccordion();
         assert accordion != null;
-        accordion.expandedPaneProperty().addListener(new ChangeListener<TitledPane>() {
-
-            @Override
-            public void changed(ObservableValue<? extends TitledPane> ov, TitledPane t, TitledPane t1) {
-                setInspectorSectionId(ipc.getExpandedSectionId());
-            }
-        });
+        accordion.expandedPaneProperty().addListener((ChangeListener<TitledPane>) (ov, t, t1) -> setInspectorSectionId(ipc.getExpandedSectionId()));
 
         // Add dividers position listeners
         final SplitController lhsc = documentWindowController.getLeftSplitController();
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,6 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.app.SceneBuilderApp.ToolTheme;
 import com.oracle.javafx.scenebuilder.app.i18n.I18N;
+
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.ALIGNMENT_GUIDES_COLOR;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.BACKGROUND_IMAGE;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.CSS_TABLE_COLUMNS_ORDERING_REVERSED;
@@ -44,8 +45,10 @@
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.RECENT_ITEMS;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.RECENT_ITEMS_SIZE;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesController.TOOL_THEME;
+
 import com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.BackgroundImage;
 import com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.CSSAnalyzerColumnsOrder;
+
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.DEFAULT_ALIGNMENT_GUIDES_COLOR;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.DEFAULT_BACKGROUND_IMAGE;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.DEFAULT_HIERARCHY_DISPLAY_OPTION;
@@ -56,17 +59,19 @@
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.DEFAULT_ROOT_CONTAINER_WIDTH;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.DEFAULT_TOOL_THEME;
 import static com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal.recentItemsSizes;
+
 import com.oracle.javafx.scenebuilder.kit.editor.panel.hierarchy.AbstractHierarchyPanelController.DisplayOption;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.DoubleField;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.library.LibraryPanelController.DISPLAY_MODE;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlWindowController;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker.Mode;
+
 import java.util.Arrays;
+
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.ChoiceBox;
 import javafx.scene.control.CustomMenuItem;
@@ -132,32 +137,24 @@
 
         // Root container size
         rootContainerHeight.setText(String.valueOf(recordGlobal.getRootContainerHeight()));
-        rootContainerHeight.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                final String value = rootContainerHeight.getText();
-                recordGlobal.setRootContainerHeight(Double.valueOf(value));
-                rootContainerHeight.selectAll();
-                // Update preferences
-                recordGlobal.writeToJavaPreferences(ROOT_CONTAINER_HEIGHT);
-                // Update UI
-                recordGlobal.refreshRootContainerHeight();
-            }
+        rootContainerHeight.setOnAction(t -> {
+            final String value = rootContainerHeight.getText();
+            recordGlobal.setRootContainerHeight(Double.valueOf(value));
+            rootContainerHeight.selectAll();
+            // Update preferences
+            recordGlobal.writeToJavaPreferences(ROOT_CONTAINER_HEIGHT);
+            // Update UI
+            recordGlobal.refreshRootContainerHeight();
         });
         rootContainerWidth.setText(String.valueOf(recordGlobal.getRootContainerWidth()));
-        rootContainerWidth.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                final String value = rootContainerWidth.getText();
-                recordGlobal.setRootContainerWidth(Double.valueOf(value));
-                rootContainerWidth.selectAll();
-                // Update preferences
-                recordGlobal.writeToJavaPreferences(ROOT_CONTAINER_WIDTH);
-                // Update UI
-                recordGlobal.refreshRootContainerWidth();
-            }
+        rootContainerWidth.setOnAction(t -> {
+            final String value = rootContainerWidth.getText();
+            recordGlobal.setRootContainerWidth(Double.valueOf(value));
+            rootContainerWidth.selectAll();
+            // Update preferences
+            recordGlobal.writeToJavaPreferences(ROOT_CONTAINER_WIDTH);
+            // Update UI
+            recordGlobal.refreshRootContainerWidth();
         });
 
         // Background image
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -36,10 +36,12 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController.Size;
 import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform.Theme;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractWindowController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
 import com.oracle.javafx.scenebuilder.kit.util.Deprecation;
 import com.oracle.javafx.scenebuilder.kit.util.MathUtils;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -49,9 +51,9 @@
 import java.util.ResourceBundle;
 import java.util.Timer;
 import java.util.TimerTask;
+
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.geometry.Bounds;
 import javafx.geometry.Rectangle2D;
@@ -105,22 +107,18 @@
         super(owner);
         this.editorController = editorController;
         this.editorController.fxomDocumentProperty().addListener(
-                new ChangeListener<FXOMDocument>() {
-                    @Override
-                    public void changed(ObservableValue<? extends FXOMDocument> ov,
-                            FXOMDocument od, FXOMDocument nd) {
-                        assert editorController.getFxomDocument() == nd;
-                        if (od != null) {
-                            od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
-                            od.cssRevisionProperty().removeListener(cssRevisionListener);
-                        }
-                        if (nd != null) {
-                            nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
-                            nd.cssRevisionProperty().addListener(cssRevisionListener);
-                            requestUpdate(DELAYED);
-                        }
-                    }
-                });
+                (ChangeListener<FXOMDocument>) (ov, od, nd) -> {
+                  assert editorController.getFxomDocument() == nd;
+                  if (od != null) {
+                od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
+                od.cssRevisionProperty().removeListener(cssRevisionListener);
+                  }
+                  if (nd != null) {
+                nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
+                nd.cssRevisionProperty().addListener(cssRevisionListener);
+                requestUpdate(DELAYED);
+                  }
+               });
         
         if (editorController.getFxomDocument() != null) {
             editorController.getFxomDocument().sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
@@ -128,44 +126,23 @@
         }
         
         this.editorControllerTheme = editorController.getTheme();
-        this.editorController.themeProperty().addListener(new ChangeListener<EditorPlatform.Theme>() {
-
-            @Override
-            public void changed(ObservableValue<? extends EditorPlatform.Theme> ov,
-                    EditorPlatform.Theme t, EditorPlatform.Theme t1) {
-                if (t1 != null) {
-                    editorControllerTheme = t1;
-                    requestUpdate(DELAYED);
-                }
+        this.editorController.themeProperty().addListener((ChangeListener<Theme>) (ov, t, t1) -> {
+            if (t1 != null) {
+        editorControllerTheme = t1;
+        requestUpdate(DELAYED);
+            }
+         });
+        
+        this.sceneStyleSheet = editorController.getSceneStyleSheets();
+        this.editorController.sceneStyleSheetProperty().addListener((ChangeListener<ObservableList<File>>) (ov, t, t1) -> {
+            if (t1 != null) {
+                sceneStyleSheet = t1;
+                requestUpdate(DELAYED);
             }
         });
         
-        this.sceneStyleSheet = editorController.getSceneStyleSheets();
-        this.editorController.sceneStyleSheetProperty().addListener(new ChangeListener<ObservableList<File>>() {
-
-            @Override
-            public void changed(ObservableValue<? extends ObservableList<File>> ov, ObservableList<File> t, ObservableList<File> t1) {
-                if (t1 != null) {
-                    sceneStyleSheet = t1;
-                    requestUpdate(DELAYED);
-                }
-            }
-        });
-        
-        this.editorController.resourcesProperty().addListener(new ChangeListener<ResourceBundle>() {
-
-            @Override
-            public void changed(ObservableValue<? extends ResourceBundle> ov, ResourceBundle t, ResourceBundle t1) {
-                requestUpdate(DELAYED);
-            }
-        });
-        this.editorController.sampleDataEnabledProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                requestUpdate(DELAYED);
-            }
-        });
+        this.editorController.resourcesProperty().addListener((ChangeListener<ResourceBundle>) (ov, t, t1) -> requestUpdate(DELAYED));
+        this.editorController.sampleDataEnabledProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> requestUpdate(DELAYED));
     }
     
     /*
@@ -225,22 +202,10 @@
      */
 
     private final ChangeListener<Number> fxomDocumentRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-//                    System.out.println("fxomDocumentRevisionListener called");
-                    requestUpdate(DELAYED);
-                }
-            };
+            = (observable, oldValue, newValue) -> requestUpdate(DELAYED);
 
     private final ChangeListener<Number> cssRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-//                    System.out.println("cssRevisionListener called");
-                    Deprecation.reapplyCSS(getScene());
-                }
-            };
+            = (observable, oldValue, newValue) -> Deprecation.reapplyCSS(getScene());
 
     /**
      * We use the provided delay before refreshing the content of the preview.
@@ -259,82 +224,79 @@
             public void run() {
                 // JavaFX data should only be accessed on the JavaFX thread. 
                 // => we must wrap the code into a Runnable object and call the Platform.runLater
-                Platform.runLater(new Runnable() {
-                    @Override
-                    public void run() {
-                        final FXOMDocument fxomDocument = editorController.getFxomDocument();
-                        if (fxomDocument != null) {
-                            // We clone the FXOMDocument
-                            FXOMDocument clone;
+                Platform.runLater(() -> {
+                    final FXOMDocument fxomDocument = editorController.getFxomDocument();
+                    if (fxomDocument != null) {
+                        // We clone the FXOMDocument
+                        FXOMDocument clone;
+                        
+                        try {
+                            clone = new FXOMDocument(fxomDocument.getFxmlText(),
+                                    fxomDocument.getLocation(),
+                                    fxomDocument.getClassLoader(),
+                                    fxomDocument.getResources());
+                            clone.setSampleDataEnabled(fxomDocument.isSampleDataEnabled());
+                        } catch (IOException ex) {
+                            throw new RuntimeException("Bug in PreviewWindowController::requestUpdate", ex); //NOI18N
+                        }
+
+                        Object sceneGraphRoot = clone.getSceneGraphRoot();
+                        final List<String> themeStyleSheetStrings = new ArrayList<>();
+                        for (URL themeURL : EditorPlatform.getThemeStylesheetURLs(editorControllerTheme)) {
+                            themeStyleSheetStrings.add(themeURL.toString());
+                        }
+
+                        if (sceneGraphRoot instanceof Parent) {
+                            ((Parent) sceneGraphRoot).setId(NID_PREVIEW_ROOT);
+                            assert ((Parent) sceneGraphRoot).getScene() == null;
+
+                            setRoot((Parent) updateAutoResizeTransform((Parent) sceneGraphRoot));
+
+                            // Compute the proper styling
+                            List<String> newStyleSheets1 = new ArrayList<>();
+                            computeStyleSheets(newStyleSheets1, sceneGraphRoot, themeStyleSheetStrings);
+
+                            // Clean all styling
+                            ((Parent) sceneGraphRoot).getStylesheets().removeAll();
+
+                            // Apply the new styling as a whole
+                           ((Parent) sceneGraphRoot).getStylesheets().addAll(newStyleSheets1);
+                        } else if (sceneGraphRoot instanceof Node) {
+                            StackPane sp1 = new StackPane();
+                            sp1.setId(NID_PREVIEW_ROOT);
                             
-                            try {
-                                clone = new FXOMDocument(fxomDocument.getFxmlText(),
-                                        fxomDocument.getLocation(),
-                                        fxomDocument.getClassLoader(),
-                                        fxomDocument.getResources());
-                                clone.setSampleDataEnabled(fxomDocument.isSampleDataEnabled());
-                            } catch (IOException ex) {
-                                throw new RuntimeException("Bug in PreviewWindowController::requestUpdate", ex); //NOI18N
-                            }
+                            // Compute the proper styling
+                            List<String> newStyleSheets2 = new ArrayList<>();
+                            computeStyleSheets(newStyleSheets2, sceneGraphRoot, themeStyleSheetStrings);
 
-                            Object sceneGraphRoot = clone.getSceneGraphRoot();
-                            final List<String> themeStyleSheetStrings = new ArrayList<>();
-                            for (URL themeURL : EditorPlatform.getThemeStylesheetURLs(editorControllerTheme)) {
-                                themeStyleSheetStrings.add(themeURL.toString());
-                            }
-
-                            if (sceneGraphRoot instanceof Parent) {
-                                ((Parent) sceneGraphRoot).setId(NID_PREVIEW_ROOT);
-                                assert ((Parent) sceneGraphRoot).getScene() == null;
-
-                                setRoot((Parent) updateAutoResizeTransform((Parent) sceneGraphRoot));
-
-                                // Compute the proper styling
-                                List<String> newStyleSheets = new ArrayList<>();
-                                computeStyleSheets(newStyleSheets, sceneGraphRoot, themeStyleSheetStrings);
-
-                                // Clean all styling
-                                ((Parent) sceneGraphRoot).getStylesheets().removeAll();
-
-                                // Apply the new styling as a whole
-                               ((Parent) sceneGraphRoot).getStylesheets().addAll(newStyleSheets);
-                            } else if (sceneGraphRoot instanceof Node) {
-                                StackPane sp = new StackPane();
-                                sp.setId(NID_PREVIEW_ROOT);
-                                
-                                // Compute the proper styling
-                                List<String> newStyleSheets = new ArrayList<>();
-                                computeStyleSheets(newStyleSheets, sceneGraphRoot, themeStyleSheetStrings);
-
-                                // Apply the new styling as a whole
-                                sp.getStylesheets().addAll(newStyleSheets);
-                                
-                                // With some 3D assets such as TuxRotation the
-                                // rendering is wrong unless applyCSS is called.
-                                ((Node) sceneGraphRoot).applyCss();
-                                sp.getChildren().add(updateAutoResizeTransform((Node) sceneGraphRoot));
-                                setRoot(sp);
-                            } else {
-                                setCameraType(CameraType.PARALLEL);
-                                sizeChangedFromMenu = false;
-                                StackPane sp = new StackPane(new Label(I18N.getString("preview.not.node")));
-                                sp.setId(NID_PREVIEW_ROOT);
-                                sp.setPrefSize(WIDTH_WHEN_EMPTY, HEIGHT_WHEN_EMPTY);
-                                setRoot(sp);
-                            }
+                            // Apply the new styling as a whole
+                            sp1.getStylesheets().addAll(newStyleSheets2);
+                            
+                            // With some 3D assets such as TuxRotation the
+                            // rendering is wrong unless applyCSS is called.
+                            ((Node) sceneGraphRoot).applyCss();
+                            sp1.getChildren().add(updateAutoResizeTransform((Node) sceneGraphRoot));
+                            setRoot(sp1);
                         } else {
                             setCameraType(CameraType.PARALLEL);
                             sizeChangedFromMenu = false;
-                            StackPane sp = new StackPane(new Label(I18N.getString("preview.no.document")));
-                            sp.setId(NID_PREVIEW_ROOT);
-                            sp.setPrefSize(WIDTH_WHEN_EMPTY, HEIGHT_WHEN_EMPTY);
-                            setRoot(sp);
+                            StackPane sp2 = new StackPane(new Label(I18N.getString("preview.not.node")));
+                            sp2.setId(NID_PREVIEW_ROOT);
+                            sp2.setPrefSize(WIDTH_WHEN_EMPTY, HEIGHT_WHEN_EMPTY);
+                            setRoot(sp2);
                         }
+                    } else {
+                        setCameraType(CameraType.PARALLEL);
+                        sizeChangedFromMenu = false;
+                        StackPane sp3 = new StackPane(new Label(I18N.getString("preview.no.document")));
+                        sp3.setId(NID_PREVIEW_ROOT);
+                        sp3.setPrefSize(WIDTH_WHEN_EMPTY, HEIGHT_WHEN_EMPTY);
+                        setRoot(sp3);
+                    }
 
-                        getScene().setRoot(getRoot());
-                        updateWindowSize();
-                        updateWindowTitle();
-                    }
+                    getScene().setRoot(getRoot());
+                    updateWindowSize();
+                    updateWindowTitle();
                 });
             }
         };
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReportController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReportController.java	Thu May 22 19:22:01 2014 -0700
@@ -117,13 +117,7 @@
         assert timestampLabel != null;
                 
         UserLibrary lib = (UserLibrary)editorController.getLibrary();
-        lib.getJarReports().addListener(new ListChangeListener<JarReport>() {
-
-            @Override
-            public void onChanged(ListChangeListener.Change<? extends JarReport> change) {
-                update();
-            }
-        });
+        lib.getJarReports().addListener((ListChangeListener<JarReport>) change -> update());
         
         update();
     }
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java	Thu May 22 19:22:01 2014 -0700
@@ -214,15 +214,12 @@
         return result.toString();
     }
 
-    private final EventHandler<ActionEvent> hyperlinkHandler = new EventHandler<ActionEvent>() {
-        @Override
-        public void handle(ActionEvent t) {
-            assert t.getSource() instanceof Hyperlink;
-            final Hyperlink hyperlink = (Hyperlink) t.getSource();
-            assert hyperlink.getUserData() instanceof FXOMObject;
-            handleSelect((FXOMObject) hyperlink.getUserData());
-            hyperlink.setVisited(false);
-        }
+    private final EventHandler<ActionEvent> hyperlinkHandler = t -> {
+        assert t.getSource() instanceof Hyperlink;
+        final Hyperlink hyperlink = (Hyperlink) t.getSource();
+        assert hyperlink.getUserData() instanceof FXOMObject;
+        handleSelect((FXOMObject) hyperlink.getUserData());
+        hyperlink.setVisited(false);
     };
 
     private void handleSelect(FXOMObject fxomObject) {
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -38,10 +38,11 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlWindowController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+
 import java.util.HashMap;
 import java.util.Map;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.scene.control.CheckBox;
@@ -84,20 +85,16 @@
         this.editorController = editorController;
 
         this.editorController.fxomDocumentProperty().addListener(
-                new ChangeListener<FXOMDocument>() {
-                    @Override
-                    public void changed(ObservableValue<? extends FXOMDocument> ov,
-                            FXOMDocument od, FXOMDocument nd) {
-                        assert editorController.getFxomDocument() == nd;
-                        if (od != null) {
-                            od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
-                        }
-                        if (nd != null) {
-                            nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
-                            update();
-                        }
-                    }
-                });
+                (ChangeListener<FXOMDocument>) (ov, od, nd) -> {
+                  assert editorController.getFxomDocument() == nd;
+                  if (od != null) {
+                od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
+                  }
+                  if (nd != null) {
+                nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
+                update();
+                  }
+               });
 
         if (editorController.getFxomDocument() != null) {
             editorController.getFxomDocument().sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
@@ -128,21 +125,9 @@
         assert formatCheckBox != null;
         assert textArea != null;
 
-        commentCheckBox.selectedProperty().addListener(new ChangeListener<Boolean>() {
+        commentCheckBox.selectedProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> update());
 
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                update();
-            }
-        });
-
-        formatCheckBox.selectedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                update();
-            }
-        });
+        formatCheckBox.selectedProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> update());
 
         update();
     }
@@ -151,12 +136,7 @@
      * Private
      */
     private final ChangeListener<Number> fxomDocumentRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    update();
-                }
-            };
+            = (observable, oldValue, newValue) -> update();
 
     private void updateTitle() {
         String documentName = DocumentWindowController.makeTitle(editorController.getFxomDocument());
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java	Thu May 22 19:22:01 2014 -0700
@@ -37,6 +37,7 @@
 import com.oracle.javafx.scenebuilder.app.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.AbstractModalDialog;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.ErrorDialog;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -47,8 +48,8 @@
 import java.nio.file.StandardCopyOption;
 import java.nio.file.attribute.FileAttribute;
 import java.text.MessageFormat;
+
 import javafx.beans.InvalidationListener;
-import javafx.beans.Observable;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.scene.control.Button;
@@ -96,24 +97,18 @@
     @Override
     protected void controllerDidLoadContentFxml() {
 
-        nameTextField.textProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                // Update details section
-                updateDetails();
-                // Update OK button
-                updateOkButtonState();
+        nameTextField.textProperty().addListener((InvalidationListener) observable -> {
+            // Update details section
+            updateDetails();
+            // Update OK button
+            updateOkButtonState();
 
-            }
         });
-        locationTextField.textProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable observable) {
-                // Update details section
-                updateDetails();
-                // Update OK button
-                updateOkButtonState();
-            }
+        locationTextField.textProperty().addListener((InvalidationListener) observable -> {
+            // Update details section
+            updateDetails();
+            // Update OK button
+            updateOkButtonState();
         });
 
         // Update name text field
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java	Thu May 22 19:22:01 2014 -0700
@@ -91,6 +91,7 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PrefixedValue;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PropertyName;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.Utils;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -102,6 +103,7 @@
 import java.util.List;
 import java.util.ResourceBundle;
 import java.util.Set;
+
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ListProperty;
 import javafx.beans.property.ObjectProperty;
@@ -272,12 +274,7 @@
      * Creates an empty editor controller (ie it has no associated fxom document).
      */
     public EditorController() {
-        jobManager.revisionProperty().addListener(new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                jobManagerRevisionDidChange();
-            }
-        });
+        jobManager.revisionProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> jobManagerRevisionDidChange());
     }
 
     /**
@@ -2403,12 +2400,7 @@
     }
     
     private final ChangeListener<ClassLoader> libraryClassLoaderListener
-            = new ChangeListener<ClassLoader>() {
-                @Override
-                public void changed(ObservableValue<? extends ClassLoader> ov, ClassLoader t, ClassLoader t1) {
-                    libraryClassLoaderDidChange();
-                }
-            };
+            = (ov, t, t1) -> libraryClassLoaderDidChange();
     
     private void libraryClassLoaderDidChange() {
         if (getFxomDocument() != null) {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/drag/DragController.java	Thu May 22 19:22:01 2014 -0700
@@ -249,11 +249,9 @@
         
         mouseTimer.schedule(new TimerTask() {
             @Override public void run() {
-                Platform.runLater(new Runnable() {
-                    @Override public void run() {
-                        mouseTimer = null;
-                        mouseDidStopMoving();
-                    }
+                Platform.runLater(() -> {
+                    mouseTimer = null;
+                    mouseDidStopMoving();
                 });
             }
         }, MOUSE_TIMER_DELAY);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/AbstractDecoration.java	Thu May 22 19:22:01 2014 -0700
@@ -32,8 +32,8 @@
 package com.oracle.javafx.scenebuilder.kit.editor.panel.content;
 
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
 import javafx.scene.Group;
@@ -76,12 +76,7 @@
         this.sceneGraphClass = sceneGraphClass;
         this.sceneGraphObject = sceneGraphClass.cast(fxomObject.getSceneGraphObject());
         
-        this.rootNode.sceneProperty().addListener(new ChangeListener<Scene>() {
-            @Override
-            public void changed(ObservableValue<? extends Scene> ov, Scene v1, Scene v2) {
-                rootNodeSceneDidChange();
-            }
-        });
+        this.rootNode.sceneProperty().addListener((ChangeListener<Scene>) (ov, v1, v2) -> rootNodeSceneDidChange());
         
         // This is workaround for DTL-6628 
         rootNode.getStyleClass().add("theme-presets"); //NOI18N
@@ -224,26 +219,11 @@
      */
     
     private final ChangeListener<Bounds> layoutBoundsListener
-        = new ChangeListener<Bounds>() {
-            @Override
-            public void changed(ObservableValue<? extends Bounds> ov, Bounds v1, Bounds v2) {
-                layoutDecoration();
-            }
-        };
+        = (ov, v1, v2) -> layoutDecoration();
     
     private final ChangeListener<Bounds> boundsInParentListener
-        = new ChangeListener<Bounds>() {
-            @Override
-            public void changed(ObservableValue<? extends Bounds> ov, Bounds v1, Bounds v2) {
-                layoutDecoration();
-            }
-        };
+        = (ov, v1, v2) -> layoutDecoration();
     
     private final ChangeListener<Transform> localToSceneTransformListener
-        = new ChangeListener<Transform>() {
-            @Override
-            public void changed(ObservableValue<? extends Transform> ov, Transform v1, Transform v2) {
-                layoutDecoration();
-            }
-        };
+        = (ov, v1, v2) -> layoutDecoration();
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -71,6 +71,7 @@
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask;
 import com.oracle.javafx.scenebuilder.kit.util.Deprecation;
+
 import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
@@ -78,8 +79,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ListChangeListener;
 import javafx.event.Event;
 import javafx.event.EventHandler;
@@ -167,48 +168,18 @@
         this.editModeController = new EditModeController(this);
         this.pickModeController = new PickModeController(this);
         
-        editorController.getDragController().dragSourceProperty().addListener(new 
-                ChangeListener<AbstractDragSource>() {
-                    @Override
-                    public void changed(ObservableValue<? extends AbstractDragSource> ov, AbstractDragSource t, AbstractDragSource t1) {
-                        dragSourceDidChange();
-                    }
-                }
+        editorController.getDragController().dragSourceProperty().addListener((ChangeListener<AbstractDragSource>) (ov, t, t1) -> dragSourceDidChange()
         );
         
-        editorController.getDragController().dropTargetProperty().addListener(new 
-                ChangeListener<AbstractDropTarget>() {
-                    @Override
-                    public void changed(ObservableValue<? extends AbstractDropTarget> ov, AbstractDropTarget t, AbstractDropTarget t1) {
-                        dropTargetDidChange();
-                    }
-                }
+        editorController.getDragController().dropTargetProperty().addListener((ChangeListener<AbstractDropTarget>) (ov, t, t1) -> dropTargetDidChange()
         );
         
-        editorController.themeProperty().addListener(new 
-                ChangeListener<Theme>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Theme> ov, Theme t, Theme t1) {
-                        themeDidChange();
-                    }
-                }
+        editorController.themeProperty().addListener((ChangeListener<Theme>) (ov, t, t1) -> themeDidChange()
         );
         
-        editorController.sceneStyleSheetProperty().addListener(new 
-                ListChangeListener<File>() {
-                    @Override
-                    public void onChanged(ListChangeListener.Change<? extends File> change) {
-                        sceneStyleSheetsDidChange();
-                    }
-                }
+        editorController.sceneStyleSheetProperty().addListener((ListChangeListener<File>) change -> sceneStyleSheetsDidChange()
         );
-        editorController.pickModeEnabledProperty().addListener(new 
-                ChangeListener<Boolean>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                        pickModeDidChange();
-                    }
-                }
+        editorController.pickModeEnabledProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> pickModeDidChange()
         );
     }
 
@@ -962,12 +933,7 @@
     }
     
     private final EventHandler<Event> eventTracingFilter
-            = new EventHandler<Event>() {
-        @Override
-        public void handle(Event e) {
-            traceEvent(e);
-        }
-    };
+            = e -> traceEvent(e);
     
     
     private void dragSourceDidChange() {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/WorkspaceController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,13 +33,14 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+
 import java.net.URL;
 import java.util.List;
+
 import javafx.animation.FadeTransition;
 import javafx.application.ConditionalFeature;
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.BoundingBox;
 import javafx.geometry.Bounds;
 import javafx.scene.Group;
@@ -87,12 +88,7 @@
         this.extensionRect = extensionRect;
         
         // Add scene listener to panelRoot.sceneProperty()
-        this.scrollPane.sceneProperty().addListener(new ChangeListener<Scene>() {
-            @Override
-            public void changed(ObservableValue<? extends Scene> ov, Scene t, Scene t1) {
-                sceneDidChange();
-            }
-        });
+        this.scrollPane.sceneProperty().addListener((ChangeListener<Scene>) (ov, t, t1) -> sceneDidChange());
         
         // Make scalingGroup invisible.
         // We'll turn it visible once content panel is displayed in a Scene
@@ -251,12 +247,10 @@
             // visual artifacts. After the two steps are done, we turn the 
             // visible by calling revealScalingGroup().
             
-            Platform.runLater(new Runnable() {
-                @Override public void run() {
-                    layoutContent(true /* applyCSS */);
-                    adjustWorkspace();
-                    revealScalingGroup();
-                }
+            Platform.runLater(() -> {
+                layoutContent(true /* applyCSS */);
+                adjustWorkspace();
+                revealScalingGroup();
             });
         } else {
             assert scalingGroup.isVisible();
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractCurveHandles.java	Thu May 22 19:22:01 2014 -0700
@@ -33,8 +33,8 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
 import javafx.scene.Node;
@@ -52,12 +52,7 @@
     }
 
     protected final ChangeListener<Number> coordinateListener
-        = new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number v1, Number v2) {
-                layoutDecoration();
-            }
-        };
+        = (ov, v1, v2) -> layoutDecoration();
     
     
     /*
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TabHandles.java	Thu May 22 19:22:01 2014 -0700
@@ -32,7 +32,6 @@
 package com.oracle.javafx.scenebuilder.kit.editor.panel.content.driver.handles;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
 import javafx.scene.Node;
@@ -74,12 +73,7 @@
         super(contentPanelController, fxomInstance, Tab.class);
         
         getSceneGraphObject().tabPaneProperty().addListener(
-                new ChangeListener<TabPane>() {
-                    @Override
-                    public void changed(ObservableValue<? extends TabPane> ov, TabPane v1, TabPane v2) {
-                        tabPaneDidChange();
-                    }
-                });
+                (ChangeListener<TabPane>) (ov, v1, v2) -> tabPaneDidChange());
         
         tabPaneDidChange();
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TableColumnHandles.java	Thu May 22 19:22:01 2014 -0700
@@ -34,7 +34,6 @@
 import java.util.List;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
 import javafx.scene.Cursor;
@@ -88,19 +87,9 @@
         getRootNode().getChildren().add(grips); // Above handles
         
         getTableColumn().tableViewProperty().addListener(
-                new ChangeListener<Object>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Object> ov, Object v1, Object v2) {
-                        tableViewOrVisibilityDidChange();
-                    }
-                });
+                (ChangeListener<Object>) (ov, v1, v2) -> tableViewOrVisibilityDidChange());
         getTableColumn().visibleProperty().addListener(
-                new ChangeListener<Object>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Object> ov, Object v1, Object v2) {
-                        tableViewOrVisibilityDidChange();
-                    }
-                });
+                (ChangeListener<Object>) (ov, v1, v2) -> tableViewOrVisibilityDidChange());
         
         tableViewOrVisibilityDidChange();
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/TreeTableColumnHandles.java	Thu May 22 19:22:01 2014 -0700
@@ -34,7 +34,6 @@
 import java.util.List;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
 import javafx.scene.Cursor;
@@ -88,19 +87,9 @@
         getRootNode().getChildren().add(grips); // Above handles
         
         getTreeTableColumn().treeTableViewProperty().addListener(
-                new ChangeListener<Object>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Object> ov, Object v1, Object v2) {
-                        treeTableViewOrVisibilityDidChange();
-                    }
-                });
+                (ChangeListener<Object>) (ov, v1, v2) -> treeTableViewOrVisibilityDidChange());
         getTreeTableColumn().visibleProperty().addListener(
-                new ChangeListener<Object>() {
-                    @Override
-                    public void changed(ObservableValue<? extends Object> ov, Object v1, Object v2) {
-                        treeTableViewOrVisibilityDidChange();
-                    }
-                });
+                (ChangeListener<Object>) (ov, v1, v2) -> treeTableViewOrVisibilityDidChange());
         
         treeTableViewOrVisibilityDidChange();
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/DragGesture.java	Thu May 22 19:22:01 2014 -0700
@@ -50,11 +50,12 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask.Accessory;
 import com.oracle.javafx.scenebuilder.kit.util.MathUtils;
+
 import java.util.HashSet;
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javafx.event.EventHandler;
+
 import javafx.event.EventType;
 import javafx.geometry.Bounds;
 import javafx.geometry.Point2D;
@@ -114,55 +115,35 @@
         assert glassLayer.getOnDragDone()== null;
         assert glassLayer.getOnKeyPressed()== null;
         
-        glassLayer.setOnDragEntered(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent e) {
-                lastDragEvent = e;
-                dragEnteredGlassLayer();
-            }
+        glassLayer.setOnDragEntered(e1 -> {
+            lastDragEvent = e1;
+            dragEnteredGlassLayer();
         });
-        glassLayer.setOnDragOver(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent e) {
-                lastDragEvent = e;
-                dragOverGlassLayer();
-            }
+        glassLayer.setOnDragOver(e1 -> {
+            lastDragEvent = e1;
+            dragOverGlassLayer();
         });
-        glassLayer.setOnDragExited(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent e) {
-                lastDragEvent = e;
-                dragExitedGlassLayer();
-            }
+        glassLayer.setOnDragExited(e1 -> {
+            lastDragEvent = e1;
+            dragExitedGlassLayer();
         });
-        glassLayer.setOnDragDropped(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent e) {
-                lastDragEvent = e;
-                dragDroppedOnGlassLayer();
-                e.consume();
-                // On Linux, "drag over" is randomly called before "drag done".
-                // It's unclear whether it's an FX bug or feature.
-                // To make things unambiguous, we clear the "drag over" callback.
-                // See DTL-5956.
-                glassLayer.setOnDragOver(null);
-            }
+        glassLayer.setOnDragDropped(e1 -> {
+            lastDragEvent = e1;
+            dragDroppedOnGlassLayer();
+            e1.consume();
+            // On Linux, "drag over" is randomly called before "drag done".
+            // It's unclear whether it's an FX bug or feature.
+            // To make things unambiguous, we clear the "drag over" callback.
+            // See DTL-5956.
+            glassLayer.setOnDragOver(null);
         });
-        glassLayer.setOnDragDone(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent e) {
-                lastDragEvent = e;
-                dragDoneOnGlassLayer();
-                e.getDragboard().clear();
-                e.consume();
-            }
+        glassLayer.setOnDragDone(e1 -> {
+            lastDragEvent = e1;
+            dragDoneOnGlassLayer();
+            e1.getDragboard().clear();
+            e1.consume();
         });
-        glassLayer.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent e) {
-                handleKeyPressed(e);
-            }
-        });
+        glassLayer.setOnKeyPressed(e1 -> handleKeyPressed(e1));
         
         this.dragEnteredEvent = (DragEvent) e;
         this.lastDragEvent = this.dragEnteredEvent;
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/ZoomGesture.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/ZoomGesture.java	Thu May 22 19:22:01 2014 -0700
@@ -32,7 +32,7 @@
 package com.oracle.javafx.scenebuilder.kit.editor.panel.content.gesture;
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
-import javafx.event.EventHandler;
+
 import javafx.scene.Node;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.ZoomEvent;
@@ -66,18 +66,8 @@
         assert glassLayer.getOnZoom() == null;
         assert glassLayer.getOnZoomFinished() == null;
         
-        glassLayer.setOnZoom(new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent e) {
-                updateContentPanelScaling(e);
-            }
-        });
-        glassLayer.setOnZoomFinished(new EventHandler<ZoomEvent>() {
-            @Override
-            public void handle(ZoomEvent e) {
-                performTermination();
-            }
-        });
+        glassLayer.setOnZoom(e1 -> updateContentPanelScaling(e1));
+        glassLayer.setOnZoomFinished(e1 -> performTermination());
     }
     
     
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/key/AbstractKeyGesture.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/key/AbstractKeyGesture.java	Thu May 22 19:22:01 2014 -0700
@@ -34,7 +34,7 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.gesture.AbstractGesture;
-import javafx.event.EventHandler;
+
 import javafx.scene.Node;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.KeyEvent;
@@ -84,30 +84,24 @@
         assert glassLayer.getOnKeyPressed() == null;
         assert glassLayer.getOnKeyReleased() == null;
         
-        glassLayer.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent e) {
-                if (e.getCode() == firstKeyPressedEvent.getCode()) {
-                    lastKeyEvent = e;
-                    try {
-                        keyPressed();
-                    } finally {
-                        e.consume();
-                    }
+        glassLayer.setOnKeyPressed(e1 -> {
+            if (e1.getCode() == firstKeyPressedEvent.getCode()) {
+                lastKeyEvent = e1;
+                try {
+                    keyPressed();
+                } finally {
+                    e1.consume();
                 }
             }
         });
-        glassLayer.setOnKeyReleased(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent e) {
-                if (e.getCode() == firstKeyPressedEvent.getCode()) {
-                    lastKeyEvent = e;
-                    try {
-                        keyReleased();
-                    } finally {
-                        performTermination();
-                        e.consume();
-                    }
+        glassLayer.setOnKeyReleased(e1 -> {
+            if (e1.getCode() == firstKeyPressedEvent.getCode()) {
+                lastKeyEvent = e1;
+                try {
+                    keyReleased();
+                } finally {
+                    performTermination();
+                    e1.consume();
                 }
             }
         });
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseDragGesture.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseDragGesture.java	Thu May 22 19:22:01 2014 -0700
@@ -33,7 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.gesture.AbstractGesture;
-import javafx.event.EventHandler;
+
 import javafx.scene.Node;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.MouseEvent;
@@ -77,34 +77,25 @@
         assert eventTarget.getOnMouseReleased() == null;
         assert eventTarget.getOnMouseExited() == null;
         
-        eventTarget.setOnDragDetected(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent e) {
-                try {
-                    mouseDragDetected(e);
-                } finally {
-                    performTermination();
-                }
+        eventTarget.setOnDragDetected(e1 -> {
+            try {
+                mouseDragDetected(e1);
+            } finally {
+                performTermination();
             }
         });
-        eventTarget.setOnMouseReleased(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent e) {
-                try {
-                    mouseReleased(e);
-                } finally {
-                    performTermination();
-                }
+        eventTarget.setOnMouseReleased(e1 -> {
+            try {
+                mouseReleased(e1);
+            } finally {
+                performTermination();
             }
         });
-        eventTarget.setOnMouseExited(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent e) {
-                try {
-                    mouseExited(e);
-                } finally {
-                    performTermination();
-                }
+        eventTarget.setOnMouseExited(e1 -> {
+            try {
+                mouseExited(e1);
+            } finally {
+                performTermination();
             }
         });
         
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseGesture.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/gesture/mouse/AbstractMouseGesture.java	Thu May 22 19:22:01 2014 -0700
@@ -33,7 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.gesture.AbstractGesture;
-import javafx.event.EventHandler;
+
 import javafx.scene.Node;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.KeyCode;
@@ -102,51 +102,32 @@
         assert glassLayer.getOnKeyPressed() == null;
         assert glassLayer.getOnKeyReleased() == null;
         
-        glassLayer.setOnDragDetected(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent e) {
-                lastMouseEvent = e;
-                mouseDidDrag = true;
-                mouseDragStarted();
-                glassLayer.setOnMouseDragged(new EventHandler<MouseEvent>() {
-                    @Override
-                    public void handle(MouseEvent e) {
-                        lastMouseEvent = e;
-                        mouseDragged();
+        glassLayer.setOnDragDetected(e1 -> {
+            lastMouseEvent = e1;
+            mouseDidDrag = true;
+            mouseDragStarted();
+            glassLayer.setOnMouseDragged(e2 -> {
+                lastMouseEvent = e2;
+                mouseDragged();
+            });
+        });
+        glassLayer.setOnMouseReleased(e1 -> {
+            lastMouseEvent = e1;
+            try {
+                if (mouseDidDrag) {
+                    try {
+                        mouseDragEnded();
+                    } finally {
+                        glassLayer.setOnMouseDragged(null);
                     }
-                });
+                }
+                mouseReleased();
+            } finally {
+                performTermination();
             }
         });
-        glassLayer.setOnMouseReleased(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent e) {
-                lastMouseEvent = e;
-                try {
-                    if (mouseDidDrag) {
-                        try {
-                            mouseDragEnded();
-                        } finally {
-                            glassLayer.setOnMouseDragged(null);
-                        }
-                    }
-                    mouseReleased();
-                } finally {
-                    performTermination();
-                }
-            }
-        });
-        glassLayer.setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent e) {
-                handleKeyPressed(e);
-            }
-        });
-        glassLayer.setOnKeyReleased(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent e) {
-                handleKeyReleased(e);
-            }
-        });
+        glassLayer.setOnKeyPressed(e1 -> handleKeyPressed(e1));
+        glassLayer.setOnKeyReleased(e1 -> handleKeyReleased(e1));
         
         
         this.mousePressedEvent = (MouseEvent)e;
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/EditModeController.java	Thu May 22 19:22:01 2014 -0700
@@ -525,76 +525,31 @@
      */
 
     private final EventHandler<MouseEvent> mouseEnteredGlassLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mouseEnteredGlassLayer(e);
-                }
-            };
+            = e -> mouseEnteredGlassLayer(e);
     
     private final EventHandler<MouseEvent> mouseExitedGlassLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mouseExitedGlassLayer(e);
-                }
-            };
+            = e -> mouseExitedGlassLayer(e);
     
     private final EventHandler<MouseEvent> mouseMovedOnGlassLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mouseMovedOnGlassLayer(e);
-                }
-            };
+            = e -> mouseMovedOnGlassLayer(e);
     
     private final EventHandler<MouseEvent> mousePressedOnGlassLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mousePressedOnGlassLayer(e);
-                }
-            };
+            = e -> mousePressedOnGlassLayer(e);
     
     private final EventHandler<KeyEvent> keyPressedOnGlassLayerListener
-            = new EventHandler<KeyEvent>() {
-                @Override
-                public void handle(KeyEvent e) {
-                    keyPressedOnGlassLayer(e);
-                }
-            };
+            = e -> keyPressedOnGlassLayer(e);
     
     private final EventHandler<ZoomEvent> zoomStartedOnGlassLayer
-            = new EventHandler<ZoomEvent>() {
-                @Override
-                public void handle(ZoomEvent e) {
-                    zoomStartedOnGlassLayer(e);
-                }
-            };
+            = e -> zoomStartedOnGlassLayer(e);
     
     private final EventHandler<DragEvent> dragEnteredGlassLayerListener
-            = new EventHandler<DragEvent>() {
-                @Override
-                public void handle(DragEvent e) {
-                    dragEnteredGlassLayer(e);
-                }
-            };
+            = e -> dragEnteredGlassLayer(e);
 
     private final EventHandler<MouseEvent> mousePressedOnHandleLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mousePressedOnHandleLayer(e);
-                }
-            };
+            = e -> mousePressedOnHandleLayer(e);
 
     private final EventHandler<MouseEvent> mousePressedOnPringLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mousePressedOnPringLayer(e);
-                }
-            };
+            = e -> mousePressedOnPringLayer(e);
 
     private void startListeningToInputEvents() {
         final Node glassLayer = contentPanelController.getGlassLayer();
@@ -813,20 +768,12 @@
             inlineEditor.getStyleClass().add("theme-presets"); //NOI18N
             inlineEditor.getStyleClass().add(InlineEditController.INLINE_EDITOR);
             final Callback<String, Boolean> requestCommit
-                    = new Callback<String, Boolean>() {
-                        @Override
-                        public Boolean call(String value) {
-                            return inlineEditingDidRequestCommit(value);
-                        }
-                    };
+                    = value -> inlineEditingDidRequestCommit(value);
             final Callback<Void, Boolean> requestRevert
-                    = new Callback<Void, Boolean>() {
-                        @Override
-                        public Boolean call(Void value) {
-                            inlineEditingDidRequestRevert();
-                            return true;
-                        }
-                    };
+                    = value -> {
+                inlineEditingDidRequestRevert();
+                return true;
+            };
             inlineEditController.startEditingSession(inlineEditor,
                     inlineEditingBounds, requestCommit, requestRevert);
         } else {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/PickModeController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/mode/PickModeController.java	Thu May 22 19:22:01 2014 -0700
@@ -123,12 +123,7 @@
     }
     
     private final EventHandler<MouseEvent> mousePressedOnGlassLayerListener
-            = new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent e) {
-                    mousePressedOnGlassLayer(e);
-                }
-            };
+            = e -> mousePressedOnGlassLayer(e);
     
     
     private void mousePressedOnGlassLayer(MouseEvent e) {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/CssPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,6 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform.Theme;
 import com.oracle.javafx.scenebuilder.kit.editor.drag.source.AbstractDragSource;
 import com.oracle.javafx.scenebuilder.kit.editor.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.css.CssContentMaker.BeanPropertyState;
@@ -56,6 +57,7 @@
 import com.oracle.javafx.scenebuilder.kit.util.Deprecation;
 import com.sun.javafx.css.ParsedValueImpl;
 import com.sun.javafx.css.Rule;
+
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Array;
@@ -64,6 +66,7 @@
 import java.net.URL;
 import java.text.MessageFormat;
 import java.util.*;
+
 import javafx.animation.FadeTransition;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
@@ -87,7 +90,6 @@
 import javafx.scene.image.ImageView;
 import javafx.scene.input.Clipboard;
 import javafx.scene.input.ClipboardContent;
-import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.AnchorPane;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Priority;
@@ -96,7 +98,6 @@
 import javafx.scene.layout.VBox;
 import javafx.scene.text.Text;
 import javafx.scene.web.WebView;
-import javafx.stage.WindowEvent;
 import javafx.util.Callback;
 import javafx.util.Duration;
 
@@ -238,27 +239,9 @@
         root.getChildren().remove(textPane);
         root.getChildren().remove(table);
 
-        pick.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                editorController.setPickModeEnabled(true);
-            }
-        });
-        edit.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                editorController.setPickModeEnabled(false);
-            }
-        });
-        editorController.pickModeEnabledProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldVal, Boolean newVal) {
-                setPickMode(newVal);
-            }
-        });
+        pick.setOnAction(t -> editorController.setPickModeEnabled(true));
+        edit.setOnAction(t -> editorController.setPickModeEnabled(false));
+        editorController.pickModeEnabledProperty().addListener((ChangeListener<Boolean>) (ov, oldVal, newVal) -> setPickMode(newVal));
         // Initialize the pick mode from the editorController value
         setPickMode(editorController.isPickModeEnabled());
 
@@ -289,52 +272,34 @@
         defaultColumn.setCellValueFactory(valueFactory);
         defaultColumn.setCellFactory(new DefaultCellFactory());
 
-        editorController.themeProperty().addListener(new ChangeListener<EditorPlatform.Theme>() {
+        editorController.themeProperty().addListener((ChangeListener<Theme>) (ov, t, t1) -> refresh());
 
-            @Override
-            public void changed(ObservableValue<? extends EditorPlatform.Theme> ov, EditorPlatform.Theme t, EditorPlatform.Theme t1) {
+        cssStateProperty.addListener((ChangeListener<NodeCssState>) (arg0, oldValue, newValue) -> fillPropertiesTable());
+
+        ChangeListener<Item> selectionListener = (arg0, oldvalue, newValue) -> {
+            if (newValue != null && newValue.getItem() != null) {
+                Node selectedSubNode = CssUtils.getNode(newValue.getItem());
+                selectedObject = selectedSubNode;
                 refresh();
-            }
-        });
-
-        cssStateProperty.addListener(new ChangeListener<NodeCssState>() {
-            @Override
-            public void changed(ObservableValue<? extends NodeCssState> arg0, NodeCssState oldValue, NodeCssState newValue) {
-                fillPropertiesTable();
-            }
-        });
-
-        ChangeListener<Item> selectionListener = new ChangeListener<Item>() {
-            @Override
-            public void changed(ObservableValue<? extends Item> arg0, Item oldvalue, Item newValue) {
-                if (newValue != null && newValue.getItem() != null) {
-                    Node selectedSubNode = CssUtils.getNode(newValue.getItem());
-                    selectedObject = selectedSubNode;
-                    refresh();
-                    // Switch to pick mode
-                    editorController.setPickModeEnabled(true);
+                // Switch to pick mode
+                editorController.setPickModeEnabled(true);
 //                    // Select the sub node
-                    selection = editorController.getSelection();
-                    selection.select(getFXOMInstance(selection), selectedSubNode);
-                }
+                selection = editorController.getSelection();
+                selection.select(getFXOMInstance(selection), selectedSubNode);
             }
         };
         selectionPath.selected().addListener(selectionListener);
 
         // Listen the drag property changes
-        getEditorController().getDragController().dragSourceProperty().addListener(new ChangeListener<AbstractDragSource>() {
-
-            @Override
-            public void changed(ObservableValue<? extends AbstractDragSource> ov, AbstractDragSource oldVal, AbstractDragSource newVal) {
-                if (newVal != null) {
+        getEditorController().getDragController().dragSourceProperty().addListener((ChangeListener<AbstractDragSource>) (ov, oldVal, newVal) -> {
+            if (newVal != null) {
 //                    System.out.println("Drag started !");
-                    dragOnGoing = true;
-                } else {
+                dragOnGoing = true;
+            } else {
 //                    System.out.println("Drag finished.");
-                    dragOnGoing = false;
-                    updateSelectedObject();
-                    refresh();
-                }
+                dragOnGoing = false;
+                updateSelectedObject();
+                refresh();
             }
         });
 
@@ -981,20 +946,14 @@
                 AnchorPane.setLeftAnchor(vbox, 4.0);
                 AnchorPane.setRightAnchor(vbox, 4.0);
                 AnchorPane.setBottomAnchor(vbox, 4.0);
-                setOnMouseEntered(new EventHandler<MouseEvent>() {
-                    @Override
-                    public void handle(MouseEvent arg0) {
-                        if ((navigationMenuButton != null) && !navigationMenuButton.isShowing()) {
-                            fadeMenuButtonTo(1);
-                        }
+                setOnMouseEntered(arg0 -> {
+                    if ((navigationMenuButton != null) && !navigationMenuButton.isShowing()) {
+                        fadeMenuButtonTo(1);
                     }
                 });
-                setOnMouseExited(new EventHandler<MouseEvent>() {
-                    @Override
-                    public void handle(MouseEvent arg0) {
-                        if ((navigationMenuButton != null) && !navigationMenuButton.isShowing()) {
-                            fadeMenuButtonTo(0);
-                        }
+                setOnMouseExited(arg0 -> {
+                    if ((navigationMenuButton != null) && !navigationMenuButton.isShowing()) {
+                        fadeMenuButtonTo(0);
                     }
                 });
             }
@@ -1154,12 +1113,7 @@
                     if ((origin == StyleOrigin.USER) || (origin == StyleOrigin.INLINE)) {
                         // Inspector or Inline columns
                         navigationMenuButton.getItems().add(revealInInspectorMenuItem);
-                        revealInInspectorMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                            @Override
-                            public void handle(ActionEvent event) {
-                                navigate(item, getPropertyState(item), style, origin);
-                            }
-                        });
+                        revealInInspectorMenuItem.setOnAction(event -> navigate(item, getPropertyState(item), style, origin));
                         if (CssPanelController.this.applicationDelegate == null) {
                             // disable the menu item in this case
                             revealInInspectorMenuItem.setDisable(true);
@@ -1171,18 +1125,8 @@
                         revealInFileBrowserMenuItem.setText(EditorPlatform.IS_MAC
                                 ? MessageFormat.format(I18N.getString("csspanel.reveal.finder"), nav)
                                 : MessageFormat.format(I18N.getString("csspanel.reveal.explorer"), nav));
-                        revealInFileBrowserMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                            @Override
-                            public void handle(ActionEvent event) {
-                                navigate(item, getPropertyState(item), style, origin);
-                            }
-                        });
-                        openStylesheetMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                            @Override
-                            public void handle(ActionEvent event) {
-                                open(item, getPropertyState(item), style, origin);
-                            }
-                        });
+                        revealInFileBrowserMenuItem.setOnAction(event -> navigate(item, getPropertyState(item), style, origin));
+                        openStylesheetMenuItem.setOnAction(event -> open(item, getPropertyState(item), style, origin));
                     }
                 }
                 currentValue.setNavigation(navigationLabel, navigationMenuButton);
@@ -1809,19 +1753,11 @@
         private static void attachContextMenu(final TreeView<Node> tv) {
             ContextMenu ctxMenu = new ContextMenu();
             final MenuItem cssContentAction = new MenuItem(I18N.getString("csspanel.copy"));
-            ctxMenu.setOnShowing(new EventHandler<WindowEvent>() {
-                @Override
-                public void handle(WindowEvent arg0) {
-                }
+            ctxMenu.setOnShowing(arg0 -> {
             });
             tv.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
 
-            cssContentAction.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent arg0) {
-                    copy(tv);
-                }
-            });
+            cssContentAction.setOnAction(arg0 -> copy(tv));
 
             ctxMenu.getItems().add(cssContentAction);
             tv.setContextMenu(ctxMenu);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/css/SelectionPath.java	Thu May 22 19:22:01 2014 -0700
@@ -33,10 +33,10 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.geometry.Side;
@@ -47,7 +47,6 @@
 import javafx.scene.control.MenuItem;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.*;
-import javafx.stage.WindowEvent;
 
 /**
  * CSS panel selection path handling.
@@ -102,14 +101,11 @@
             label.setMaxHeight(Double.MAX_VALUE);
             builder.append(item.getName());
             final List<Item> myPath = new ArrayList<>(iterationPath);
-            final EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    setSelectionPath(new Path(myPath));
-                    select(item.getItem());
-                    // Set the focus to the css panel
-                    requestFocus();
-                }
+            final EventHandler<ActionEvent> eh = event -> {
+                setSelectionPath(new Path(myPath));
+                select(item.getItem());
+                // Set the focus to the css panel
+                requestFocus();
             };
             label.setOnAction(eh);
 
@@ -203,59 +199,47 @@
                 CheckMenuItem mi = new ChildMenuItem(c);
                 final List<Item> childPath = new ArrayList<>(childrenPath);
                 childPath.add(c);
-                mi.setOnAction(new EventHandler<ActionEvent>() {
-                    @Override
-                    public void handle(ActionEvent event) {
-                        setSelectionPath(new Path(childPath));
-                        selected.set(c);
-                    }
+                mi.setOnAction(event -> {
+                    setSelectionPath(new Path(childPath));
+                    selected.set(c);
                 });
                 menu.getItems().add(mi);
             }
-            menu.setOnShowing(new EventHandler<WindowEvent>() {
-                @Override
-                public void handle(WindowEvent event) {
-                    for (MenuItem m : menu.getItems()) {
-                        assert m instanceof ChildMenuItem;
-                        ChildMenuItem cm = (ChildMenuItem) m;
-                        cm.setSelected(cm.item == selectedChild);
+            menu.setOnShowing(event -> {
+                for (MenuItem m : menu.getItems()) {
+                    assert m instanceof ChildMenuItem;
+                    ChildMenuItem cm = (ChildMenuItem) m;
+                    cm.setSelected(cm.item == selectedChild);
+                }
+                positionMenu(menu);
+            });
+
+            menu.heightProperty().addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> {
+                if (newValue.doubleValue() <= 0) {
+                    return;
+                }
+                double singleHeight = newValue.doubleValue() / menu.getItems().size();
+                int index = 0;
+                boolean found = false;
+                for (MenuItem m : menu.getItems()) {
+                    assert m instanceof ChildMenuItem;
+                    ChildMenuItem cm = (ChildMenuItem) m;
+                    index += 1;
+                    if (cm.isSelected()) {
+                        found = true;
+                        break;
                     }
+                }
+                if (found) {
+                    yOffset = singleHeight * (index - 1);
                     positionMenu(menu);
                 }
             });
 
-            menu.heightProperty().addListener(new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    if (newValue.doubleValue() <= 0) {
-                        return;
-                    }
-                    double singleHeight = newValue.doubleValue() / menu.getItems().size();
-                    int index = 0;
-                    boolean found = false;
-                    for (MenuItem m : menu.getItems()) {
-                        assert m instanceof ChildMenuItem;
-                        ChildMenuItem cm = (ChildMenuItem) m;
-                        index += 1;
-                        if (cm.isSelected()) {
-                            found = true;
-                            break;
-                        }
-                    }
-                    if (found) {
-                        yOffset = singleHeight * (index - 1);
-                        positionMenu(menu);
-                    }
-                }
-            });
-
-            pathButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
-                @Override
-                public void handle(MouseEvent event) {
-                    // Show popup. We can't compute the delta now...
-                    if (!menu.isShowing()) {
-                        menu.show(ChildButton.this, Side.RIGHT, 0, 0);
-                    }
+            pathButton.setOnMouseClicked(event -> {
+                // Show popup. We can't compute the delta now...
+                if (!menu.isShowing()) {
+                    menu.show(ChildButton.this, Side.RIGHT, 0, 0);
                 }
             });
         }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/AbstractHierarchyPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -45,6 +45,7 @@
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask.Accessory;
+
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,12 +54,12 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ObservableValue;
 import javafx.collections.ListChangeListener;
 import javafx.collections.ObservableList;
-import javafx.event.EventHandler;
 import javafx.event.EventTarget;
 import javafx.geometry.Insets;
 import javafx.geometry.Orientation;
@@ -131,12 +132,7 @@
     /**
      * @treatAsPrivate
      */
-    protected final ListChangeListener<TreeItem<HierarchyItem>> treeItemSelectionListener = new ListChangeListener<TreeItem<HierarchyItem>>() {
-        @Override
-        public void onChanged(ListChangeListener.Change<? extends TreeItem<HierarchyItem>> change) {
-            treeItemSelectionDidChange();
-        }
-    };
+    protected final ListChangeListener<TreeItem<HierarchyItem>> treeItemSelectionListener = change -> treeItemSelectionDidChange();
 
     /**
      * Used to define the type of information displayed in the hierarchy.
@@ -946,62 +942,22 @@
         //----------------------------------------------------------------------
         // DRAG_DONE event received when drag gesture 
         // started from the hierarchy panel ends
-        getPanelControl().setOnDragDone(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                handleOnDragDone(event);
-            }
-        });
-        getPanelControl().setOnDragDropped(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                handleOnDragDropped(event);
-            }
-        });
-        getPanelControl().setOnDragEntered(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                handleOnDragEntered(event);
-            }
-        });
-        getPanelControl().setOnDragExited(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                handleOnDragExited(event);
-            }
-        });
-        getPanelControl().setOnDragOver(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                handleOnDragOver(event);
-            }
-        });
+        getPanelControl().setOnDragDone(event -> handleOnDragDone(event));
+        getPanelControl().setOnDragDropped(event -> handleOnDragDropped(event));
+        getPanelControl().setOnDragEntered(event -> handleOnDragEntered(event));
+        getPanelControl().setOnDragExited(event -> handleOnDragExited(event));
+        getPanelControl().setOnDragOver(event -> handleOnDragOver(event));
 
         // Key events
         //----------------------------------------------------------------------
-        getPanelControl().setOnKeyPressed(new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent event) {
-                handleOnKeyPressed(event);
-            }
-        });
+        getPanelControl().setOnKeyPressed(event -> handleOnKeyPressed(event));
 
         // Mouse events
         //----------------------------------------------------------------------
         // DRAG_DETECTED event received when drag gesture 
         // starts from the hierarchy panel
-        getPanelControl().setOnDragDetected(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent event) {
-                handleOnDragDetected(event);
-            }
-        });
-        getPanelControl().setOnMousePressed(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent event) {
-                handleOnMousePressed(event);
-            }
-        });
+        getPanelControl().setOnDragDetected(event -> handleOnDragDetected(event));
+        getPanelControl().setOnMousePressed(event -> handleOnMousePressed(event));
 
         // Setup the context menu
         final ContextMenuController contextMenuController
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/HierarchyTaskScheduler.java	Thu May 22 19:22:01 2014 -0700
@@ -80,21 +80,18 @@
             public void run() {
                 // JavaFX data should only be accessed on the JavaFX thread. 
                 // => we must wrap the code into a Runnable object and call the Platform.runLater
-                Platform.runLater(new Runnable() {
-                    @Override
-                    public void run() {
-                        final TreeItem<HierarchyItem> graphicTreeItem
-                                = panelController.makeTreeItemGraphic(owner, null);
-                        // Add Graphic at first position
-                        treeItem.getChildren().add(0, graphicTreeItem);
-                        treeItem.setExpanded(true);
-                        final Cell<?> cell = panelController.getCell(treeItem);
-                        assert cell != null;
-                        final Border border = panelController.getBorder(
-                                BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                        cell.setBorder(border);
-                        isAddEmptyGraphicTaskScheduled = false;
-                    }
+                Platform.runLater(() -> {
+                    final TreeItem<HierarchyItem> graphicTreeItem
+                            = panelController.makeTreeItemGraphic(owner, null);
+                    // Add Graphic at first position
+                    treeItem.getChildren().add(0, graphicTreeItem);
+                    treeItem.setExpanded(true);
+                    final Cell<?> cell = panelController.getCell(treeItem);
+                    assert cell != null;
+                    final Border border = panelController.getBorder(
+                            BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                    cell.setBorder(border);
+                    isAddEmptyGraphicTaskScheduled = false;
                 });
             }
         };
@@ -140,12 +137,7 @@
         public void run() {
             // JavaFX data should only be accessed on the JavaFX thread. 
             // => we must wrap the code into a Runnable object and call the Platform.runLater
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    treeItem.setExpanded(true);
-                }
-            });
+            Platform.runLater(() -> treeItem.setExpanded(true));
         }
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeCell.java	Thu May 22 19:22:01 2014 -0700
@@ -66,11 +66,12 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.util.DesignHierarchyMask.Accessory;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PropertyName;
 import com.sun.javafx.css.CssError;
+
 import java.net.URL;
 import java.util.List;
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.beans.value.WeakChangeListener;
 import javafx.collections.ObservableList;
 import javafx.event.EventHandler;
@@ -146,17 +147,13 @@
     private final Line insertLineIndicator = new Line();
 
     // Listener for the display option used to update the display info label
-    final ChangeListener<DisplayOption> displayOptionListener = new ChangeListener<DisplayOption>() {
-
-        @Override
-        public void changed(ObservableValue<? extends DisplayOption> ov, DisplayOption t, DisplayOption t1) {
-            // Update display info for non empty cells
-            if (!isEmpty() && getItem() != null && !getItem().isEmpty()) {
-                final String displayInfo = getItem().getDisplayInfo(t1);
-                displayInfoLabel.setText(displayInfo);
-                displayInfoLabel.setManaged(getItem().hasDisplayInfo(t1));
-                displayInfoLabel.setVisible(getItem().hasDisplayInfo(t1));
-            }
+    final ChangeListener<DisplayOption> displayOptionListener = (ov, t, t1) -> {
+        // Update display info for non empty cells
+        if (!isEmpty() && getItem() != null && !getItem().isEmpty()) {
+            final String displayInfo = getItem().getDisplayInfo(t1);
+            displayInfoLabel.setText(displayInfo);
+            displayInfoLabel.setManaged(getItem().hasDisplayInfo(t1));
+            displayInfoLabel.setVisible(getItem().hasDisplayInfo(t1));
         }
     };
 
@@ -201,286 +198,264 @@
 
         // Key events
         //----------------------------------------------------------------------
-        final EventHandler<KeyEvent> keyEventHandler = new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(final KeyEvent e) {
-                filterKeyEvent(e);
-            }
-        };
+        final EventHandler<KeyEvent> keyEventHandler = e -> filterKeyEvent(e);
         this.addEventFilter(KeyEvent.ANY, keyEventHandler);
 
         // Mouse events
         //----------------------------------------------------------------------
-        final EventHandler<MouseEvent> mouseEventHandler = new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(final MouseEvent e) {
-                filterMouseEvent(e);
-            }
-        };
+        final EventHandler<MouseEvent> mouseEventHandler = e -> filterMouseEvent(e);
         this.addEventFilter(MouseEvent.ANY, mouseEventHandler);
 
         // Drag events
         //----------------------------------------------------------------------
         final HierarchyDNDController dndController = panelController.getDNDController();
 
-        setOnDragDropped(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                final TreeItem<HierarchyItem> treeItem
-                        = HierarchyTreeCell.this.getTreeItem();
-                // Forward to the DND controller
-                dndController.handleOnDragDropped(treeItem, event);
+        setOnDragDropped(event -> {
+            final TreeItem<HierarchyItem> treeItem
+                    = HierarchyTreeCell.this.getTreeItem();
+            // Forward to the DND controller
+            dndController.handleOnDragDropped(treeItem, event);
 
-                // CSS
-                panelController.clearBorderColor(HierarchyTreeCell.this);
-                // Remove insert line indicator
-                panelController.removeFromPanelControlSkin(insertLineIndicator);
+            // CSS
+            panelController.clearBorderColor(HierarchyTreeCell.this);
+            // Remove insert line indicator
+            panelController.removeFromPanelControlSkin(insertLineIndicator);
+        });
+        setOnDragEntered(event -> {
+            final TreeItem<HierarchyItem> treeItem
+                    = HierarchyTreeCell.this.getTreeItem();
+            // Forward to the DND controller
+            dndController.handleOnDragEntered(treeItem, event);
+        });
+        setOnDragExited(event -> {
+            final TreeItem<HierarchyItem> treeItem
+                    = HierarchyTreeCell.this.getTreeItem();
+            final Bounds bounds = HierarchyTreeCell.this.getLayoutBounds();
+            final Point2D point = HierarchyTreeCell.this.localToScene(bounds.getMinX(), bounds.getMinY());
+            final DroppingMouseLocation location;
+            if (event.getSceneY() <= point.getY()) {
+                location = DroppingMouseLocation.TOP;
+            } else {
+                location = DroppingMouseLocation.BOTTOM;
             }
+
+            // Forward to the DND controller
+            dndController.handleOnDragExited(treeItem, event, location);
+
+            // CSS
+            panelController.clearBorderColor(HierarchyTreeCell.this);
+            // Remove insert line indicator
+            panelController.removeFromPanelControlSkin(insertLineIndicator);
         });
-        setOnDragEntered(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                final TreeItem<HierarchyItem> treeItem
-                        = HierarchyTreeCell.this.getTreeItem();
-                // Forward to the DND controller
-                dndController.handleOnDragEntered(treeItem, event);
+        setOnDragOver(event -> {
+            final TreeItem<HierarchyItem> treeItem
+                    = HierarchyTreeCell.this.getTreeItem();
+            final DragController dragController
+                    = panelController.getEditorController().getDragController();
+            final DroppingMouseLocation location = getDroppingMouseLocation(event);
+
+            // Forward to the DND controller
+            dndController.handleOnDragOver(treeItem, event, location); // (1)
+
+            panelController.clearBorderColor();
+            // Update vertical insert line indicator stroke color
+            final Paint paint = panelController.getParentRingColor();
+            insertLineIndicator.setStroke(paint);
+            // Remove insert line indicator
+            panelController.removeFromPanelControlSkin(insertLineIndicator);
+
+            // If an animation timeline is running 
+            // (auto-scroll when DND to the top or bottom of the Hierarchy),
+            // we do not display insert indicators.
+            if (panelController.isTimelineRunning()) {
+                return;
             }
-        });
-        setOnDragExited(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                final TreeItem<HierarchyItem> treeItem
-                        = HierarchyTreeCell.this.getTreeItem();
-                final Bounds bounds = HierarchyTreeCell.this.getLayoutBounds();
-                final Point2D point = HierarchyTreeCell.this.localToScene(bounds.getMinX(), bounds.getMinY());
-                final DroppingMouseLocation location;
-                if (event.getSceneY() <= point.getY()) {
-                    location = DroppingMouseLocation.TOP;
-                } else {
-                    location = DroppingMouseLocation.BOTTOM;
-                }
 
-                // Forward to the DND controller
-                dndController.handleOnDragExited(treeItem, event, location);
+            // Drop target has been updated because of (1)
+            if (dragController.isDropAccepted()) {
 
-                // CSS
-                panelController.clearBorderColor(HierarchyTreeCell.this);
-                // Remove insert line indicator
-                panelController.removeFromPanelControlSkin(insertLineIndicator);
-            }
-        });
-        setOnDragOver(new EventHandler<DragEvent>() {
-            @Override
-            public void handle(DragEvent event) {
-                final TreeItem<HierarchyItem> treeItem
-                        = HierarchyTreeCell.this.getTreeItem();
-                final DragController dragController
-                        = panelController.getEditorController().getDragController();
-                final DroppingMouseLocation location = getDroppingMouseLocation(event);
+                final AbstractDropTarget dropTarget = dragController.getDropTarget();
+                final FXOMObject dropTargetObject = dropTarget.getTargetObject();
+                final TreeItem<?> rootTreeItem = getTreeView().getRoot();
 
-                // Forward to the DND controller
-                dndController.handleOnDragOver(treeItem, event, location); // (1)
-
-                panelController.clearBorderColor();
-                // Update vertical insert line indicator stroke color
-                final Paint paint = panelController.getParentRingColor();
-                insertLineIndicator.setStroke(paint);
-                // Remove insert line indicator
-                panelController.removeFromPanelControlSkin(insertLineIndicator);
-
-                // If an animation timeline is running 
-                // (auto-scroll when DND to the top or bottom of the Hierarchy),
-                // we do not display insert indicators.
-                if (panelController.isTimelineRunning()) {
+                if (dropTarget instanceof RootDropTarget) {
+                    // No visual feedback in case of dropping the root node
                     return;
                 }
 
-                // Drop target has been updated because of (1)
-                if (dragController.isDropAccepted()) {
+                //==========================================================
+                // ACCESSORIES :
+                //
+                // No need to handle the insert line indicator.
+                // Border is set either on the accessory place holder cell
+                // or on the accessory owner cell.
+                //==========================================================
+                if (dropTarget instanceof AccessoryDropTarget) {
 
-                    final AbstractDropTarget dropTarget = dragController.getDropTarget();
-                    final FXOMObject dropTargetObject = dropTarget.getTargetObject();
-                    final TreeItem<?> rootTreeItem = getTreeView().getRoot();
+                    final AccessoryDropTarget accessoryDropTarget = (AccessoryDropTarget) dropTarget;
+                    final TreeCell<?> cell;
 
-                    if (dropTarget instanceof RootDropTarget) {
-                        // No visual feedback in case of dropping the root node
-                        return;
+                    // TreeItem is null when dropping below the datas
+                    // => the drop target is the root
+                    if (treeItem == null) {
+                        cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), rootTreeItem);
+                    } else {
+                        final HierarchyItem item1 = treeItem.getValue();
+                        assert item1 != null;
+
+                        if (item1.isPlaceHolder()) {
+                            cell = HierarchyTreeCell.this;
+                        } else if (accessoryDropTarget.getAccessory() == Accessory.GRAPHIC) {
+                            // Check if an empty graphic TreeItem has been added
+                            final TreeItem<HierarchyItem> graphicTreeItem
+                                    = dndController.getEmptyGraphicTreeItemFor(treeItem);
+                            if (graphicTreeItem != null) {
+                                cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), graphicTreeItem);
+                            } else {
+                                final TreeItem<HierarchyItem> accessoryOwnerTreeItem1
+                                        = panelController.lookupTreeItem(dropTargetObject);
+                                cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), accessoryOwnerTreeItem1);
+                            }
+                        } else {
+                            final TreeItem<HierarchyItem> accessoryOwnerTreeItem2
+                                    = panelController.lookupTreeItem(dropTargetObject);
+                            cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), accessoryOwnerTreeItem2);
+                        }
                     }
 
-                    //==========================================================
-                    // ACCESSORIES :
-                    //
-                    // No need to handle the insert line indicator.
-                    // Border is set either on the accessory place holder cell
-                    // or on the accessory owner cell.
-                    //==========================================================
-                    if (dropTarget instanceof AccessoryDropTarget) {
+                    final Border border1 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                    cell.setBorder(border1);
+                }//
+                //==========================================================
+                // SUB COMPONENTS :
+                //
+                // Need to handle the insert line indicator.
+                //==========================================================
+                else {
+                    assert dropTarget instanceof ContainerZDropTarget
+                            || dropTarget instanceof GridPaneDropTarget;
+                    TreeItem<?> startTreeItem;
+                    TreeCell<?> startCell, stopCell;
 
-                        final AccessoryDropTarget accessoryDropTarget = (AccessoryDropTarget) dropTarget;
-                        final TreeCell<?> cell;
+                    // TreeItem is null when dropping below the datas
+                    // => the drop target is the root
+                    if (treeItem == null) {
+                        if (rootTreeItem.isLeaf() || !rootTreeItem.isExpanded()) {
+                            final TreeCell<?> rootCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), 0);
+                            final Border border2 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                            rootCell.setBorder(border2);
+                        } else {
+                            final TreeItem<?> lastTreeItem1 = panelController.getLastVisibleTreeItem(rootTreeItem);
+                            final TreeCell<?> lastCell1 = HierarchyTreeViewUtils.getTreeCell(getTreeView(), lastTreeItem1);
+                            // As we are dropping below the datas, the last cell is visible
+                            assert lastCell1 != null;
+                            final Border border3 = panelController.getBorder(BorderSide.BOTTOM);
+                            lastCell1.setBorder(border3);
 
-                        // TreeItem is null when dropping below the datas
-                        // => the drop target is the root
-                        if (treeItem == null) {
-                            cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), rootTreeItem);
-                        } else {
-                            final HierarchyItem item = treeItem.getValue();
-                            assert item != null;
-
-                            if (item.isPlaceHolder()) {
-                                cell = HierarchyTreeCell.this;
-                            } else if (accessoryDropTarget.getAccessory() == Accessory.GRAPHIC) {
-                                // Check if an empty graphic TreeItem has been added
-                                final TreeItem<HierarchyItem> graphicTreeItem
-                                        = dndController.getEmptyGraphicTreeItemFor(treeItem);
-                                if (graphicTreeItem != null) {
-                                    cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), graphicTreeItem);
-                                } else {
-                                    final TreeItem<HierarchyItem> accessoryOwnerTreeItem
-                                            = panelController.lookupTreeItem(dropTargetObject);
-                                    cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), accessoryOwnerTreeItem);
-                                }
-                            } else {
-                                final TreeItem<HierarchyItem> accessoryOwnerTreeItem
-                                        = panelController.lookupTreeItem(dropTargetObject);
-                                cell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), accessoryOwnerTreeItem);
-                            }
+                            // Update vertical insert line
+                            startTreeItem = rootTreeItem;
+                            startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
+                            stopCell = lastCell1;
+                            updateInsertLineIndicator(startCell, stopCell);
+                            panelController.addToPanelControlSkin(insertLineIndicator);
                         }
 
-                        final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                        cell.setBorder(border);
-                    }//
-                    //==========================================================
-                    // SUB COMPONENTS :
-                    //
-                    // Need to handle the insert line indicator.
-                    //==========================================================
-                    else {
-                        assert dropTarget instanceof ContainerZDropTarget
-                                || dropTarget instanceof GridPaneDropTarget;
-                        TreeItem<?> startTreeItem;
-                        TreeCell<?> startCell, stopCell;
+                    } else {
+                        final HierarchyItem item2 = treeItem.getValue();
+                        assert item2 != null;
 
-                        // TreeItem is null when dropping below the datas
-                        // => the drop target is the root
-                        if (treeItem == null) {
-                            if (rootTreeItem.isLeaf() || !rootTreeItem.isExpanded()) {
-                                final TreeCell<?> rootCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), 0);
-                                final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                                rootCell.setBorder(border);
-                            } else {
-                                final TreeItem<?> lastTreeItem = panelController.getLastVisibleTreeItem(rootTreeItem);
-                                final TreeCell<?> lastCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), lastTreeItem);
-                                // As we are dropping below the datas, the last cell is visible
-                                assert lastCell != null;
-                                final Border border = panelController.getBorder(BorderSide.BOTTOM);
-                                lastCell.setBorder(border);
+                        if (item2.isPlaceHolder() || item2.getFxomObject() == dropTargetObject) {
+                            // The place holder item is filled with a container
+                            // accepting sub components
+                            final Border border4 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                            HierarchyTreeCell.this.setBorder(border4);
+                        } else {
+                            // REORDERING :
+                            // To avoid visual movement of the horizontal border when
+                            // dragging from one cell to another,
+                            // we always set the border on the cell bottom location :
+                            // - if we handle REORDER BELOW gesture, just set the bottom 
+                            // border on the current cell
+                            // - if we handle REORDER ABOVE gesture, we set the bottom 
+                            // border on the previous cell
+                            //
+                            switch (location) {
 
-                                // Update vertical insert line
-                                startTreeItem = rootTreeItem;
-                                startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
-                                stopCell = lastCell;
-                                updateInsertLineIndicator(startCell, stopCell);
-                                panelController.addToPanelControlSkin(insertLineIndicator);
-                            }
+                                // REORDER ABOVE gesture
+                                case TOP:
+                                    if (treeItem == rootTreeItem) {
+                                        final Border border5 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                                        HierarchyTreeCell.this.setBorder(border5);
+                                    } else {
+                                        final int index = getIndex();
+                                        // Retrieve the previous cell
+                                        // Note : we set the border on the bottom of the previous cell 
+                                        // instead of using the top of the current cell in order to avoid
+                                        // visual gap when DND from one cell to another
+                                        final TreeCell<?> previousCell
+                                                = HierarchyTreeViewUtils.getTreeCell(getTreeView(), index - 1);
+                                        // The previous cell is null when the item is not visible
+                                        if (previousCell != null) {
+                                            final Border border6 = panelController.getBorder(BorderSide.BOTTOM);
+                                            previousCell.setBorder(border6);
+                                        }
 
-                        } else {
-                            final HierarchyItem item = treeItem.getValue();
-                            assert item != null;
+                                        // Update vertical insert line
+                                        startTreeItem = panelController.lookupTreeItem(dropTarget.getTargetObject());
+                                        startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
+                                        stopCell = previousCell;
+                                        updateInsertLineIndicator(startCell, stopCell);
+                                        panelController.addToPanelControlSkin(insertLineIndicator);
+                                    }
+                                    break;
 
-                            if (item.isPlaceHolder() || item.getFxomObject() == dropTargetObject) {
-                                // The place holder item is filled with a container
-                                // accepting sub components
-                                final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                                HierarchyTreeCell.this.setBorder(border);
-                            } else {
-                                // REORDERING :
-                                // To avoid visual movement of the horizontal border when
-                                // dragging from one cell to another,
-                                // we always set the border on the cell bottom location :
-                                // - if we handle REORDER BELOW gesture, just set the bottom 
-                                // border on the current cell
-                                // - if we handle REORDER ABOVE gesture, we set the bottom 
-                                // border on the previous cell
-                                //
-                                switch (location) {
+                                // REPARENT gesture
+                                case CENTER:
+                                    if (treeItem.isLeaf() || !treeItem.isExpanded()) {
+                                        final Border border7 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                                        HierarchyTreeCell.this.setBorder(border7);
+                                    } else {
+                                        // Reparent to the treeItem as last child
+                                        final TreeItem<?> lastTreeItem2 = panelController.getLastVisibleTreeItem(treeItem);
+                                        final TreeCell<?> lastCell2 = HierarchyTreeViewUtils.getTreeCell(getTreeView(), lastTreeItem2);
+                                        // Last cell is null when the item is not visible
+                                        if (lastCell2 != null) {
+                                            final Border border8 = panelController.getBorder(BorderSide.BOTTOM);
+                                            lastCell2.setBorder(border8);
+                                        }
 
-                                    // REORDER ABOVE gesture
-                                    case TOP:
-                                        if (treeItem == rootTreeItem) {
-                                            final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                                            HierarchyTreeCell.this.setBorder(border);
-                                        } else {
-                                            final int index = getIndex();
-                                            // Retrieve the previous cell
-                                            // Note : we set the border on the bottom of the previous cell 
-                                            // instead of using the top of the current cell in order to avoid
-                                            // visual gap when DND from one cell to another
-                                            final TreeCell<?> previousCell
-                                                    = HierarchyTreeViewUtils.getTreeCell(getTreeView(), index - 1);
-                                            // The previous cell is null when the item is not visible
-                                            if (previousCell != null) {
-                                                final Border border = panelController.getBorder(BorderSide.BOTTOM);
-                                                previousCell.setBorder(border);
-                                            }
+                                        // Update vertical insert line
+                                        startTreeItem = getTreeItem();
+                                        startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
+                                        stopCell = lastCell2;
+                                        updateInsertLineIndicator(startCell, stopCell);
+                                        panelController.addToPanelControlSkin(insertLineIndicator);
+                                    }
+                                    break;
 
-                                            // Update vertical insert line
-                                            startTreeItem = panelController.lookupTreeItem(dropTarget.getTargetObject());
-                                            startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
-                                            stopCell = previousCell;
-                                            updateInsertLineIndicator(startCell, stopCell);
-                                            panelController.addToPanelControlSkin(insertLineIndicator);
-                                        }
-                                        break;
+                                // REORDER BELOW gesture
+                                case BOTTOM:
+                                    if (treeItem == rootTreeItem
+                                            && (treeItem.isLeaf() || !treeItem.isExpanded())) {
+                                        final Border border9 = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
+                                        HierarchyTreeCell.this.setBorder(border9);
+                                    } else {
+                                        // Reparent to the treeItem as first child
+                                        final Border border10 = panelController.getBorder(BorderSide.BOTTOM);
+                                        HierarchyTreeCell.this.setBorder(border10);
 
-                                    // REPARENT gesture
-                                    case CENTER:
-                                        if (treeItem.isLeaf() || !treeItem.isExpanded()) {
-                                            final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                                            HierarchyTreeCell.this.setBorder(border);
-                                        } else {
-                                            // Reparent to the treeItem as last child
-                                            final TreeItem<?> lastTreeItem = panelController.getLastVisibleTreeItem(treeItem);
-                                            final TreeCell<?> lastCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), lastTreeItem);
-                                            // Last cell is null when the item is not visible
-                                            if (lastCell != null) {
-                                                final Border border = panelController.getBorder(BorderSide.BOTTOM);
-                                                lastCell.setBorder(border);
-                                            }
+                                        // Update vertical insert line
+                                        startTreeItem = panelController.lookupTreeItem(dropTarget.getTargetObject());
+                                        startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
+                                        stopCell = HierarchyTreeCell.this;
+                                        updateInsertLineIndicator(startCell, stopCell);
+                                        panelController.addToPanelControlSkin(insertLineIndicator);
+                                    }
+                                    break;
 
-                                            // Update vertical insert line
-                                            startTreeItem = getTreeItem();
-                                            startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
-                                            stopCell = lastCell;
-                                            updateInsertLineIndicator(startCell, stopCell);
-                                            panelController.addToPanelControlSkin(insertLineIndicator);
-                                        }
-                                        break;
-
-                                    // REORDER BELOW gesture
-                                    case BOTTOM:
-                                        if (treeItem == rootTreeItem
-                                                && (treeItem.isLeaf() || !treeItem.isExpanded())) {
-                                            final Border border = panelController.getBorder(BorderSide.TOP_RIGHT_BOTTOM_LEFT);
-                                            HierarchyTreeCell.this.setBorder(border);
-                                        } else {
-                                            // Reparent to the treeItem as first child
-                                            final Border border = panelController.getBorder(BorderSide.BOTTOM);
-                                            HierarchyTreeCell.this.setBorder(border);
-
-                                            // Update vertical insert line
-                                            startTreeItem = panelController.lookupTreeItem(dropTarget.getTargetObject());
-                                            startCell = HierarchyTreeViewUtils.getTreeCell(getTreeView(), startTreeItem);
-                                            stopCell = HierarchyTreeCell.this;
-                                            updateInsertLineIndicator(startCell, stopCell);
-                                            panelController.addToPanelControlSkin(insertLineIndicator);
-                                        }
-                                        break;
-
-                                    default:
-                                        assert false;
-                                        break;
-                                }
+                                default:
+                                    assert false;
+                                    break;
                             }
                         }
                     }
@@ -660,80 +635,76 @@
         // It returns true if the value is unchanged or if the commit succeeded, 
         // false otherwise
         //----------------------------------------------------------------------
-        final Callback<String, Boolean> requestCommit = new Callback<String, Boolean>() {
+        final Callback<String, Boolean> requestCommit = newValue -> {
+            // 1) Check the input value is valid
+            // 2) If valid, commit the new value and return true
+            // 3) Otherwise, return false
+            final HierarchyItem item = getItem();
+            // Item may be null when invoking UNDO while inline editing session is on going
+            if (item != null) {
+                final FXOMObject fxomObject = item.getFxomObject();
+                final DisplayOption option = panelController.getDisplayOption();
+                final EditorController editorController = panelController.getEditorController();
+                switch (option) {
+                    case INFO:
+                    case NODEID:
+                        if (fxomObject instanceof FXOMInstance) {
+                            final FXOMInstance fxomInstance = (FXOMInstance) fxomObject;
+                            final PropertyName propertyName = item.getPropertyNameForDisplayInfo(option);
+                            assert propertyName != null;
+                            final ValuePropertyMetadata vpm
+                                    = Metadata.getMetadata().queryValueProperty(fxomInstance, propertyName);
+                            final BatchModifyObjectJob job1
+                                    = new BatchModifyObjectJob(fxomInstance, vpm, newValue, editorController);
+                            if (job1.isExecutable()) {
+                                editorController.getJobManager().push(job1);
+                            }
+                        }
+                        break;
+                    case FXID:
+                        assert newValue != null;
+                        final String fxId = newValue.isEmpty() ? null : newValue;
+                        final BatchModifyFxIdJob job2
+                                = new BatchModifyFxIdJob(fxomObject, fxId, editorController);
+                        if (job2.isExecutable()) {
 
-            @Override
-            public Boolean call(String newValue) {
-                // 1) Check the input value is valid
-                // 2) If valid, commit the new value and return true
-                // 3) Otherwise, return false
-                final HierarchyItem item = getItem();
-                // Item may be null when invoking UNDO while inline editing session is on going
-                if (item != null) {
-                    final FXOMObject fxomObject = item.getFxomObject();
-                    final DisplayOption option = panelController.getDisplayOption();
-                    final EditorController editorController = panelController.getEditorController();
-                    switch (option) {
-                        case INFO:
-                        case NODEID:
-                            if (fxomObject instanceof FXOMInstance) {
-                                final FXOMInstance fxomInstance = (FXOMInstance) fxomObject;
-                                final PropertyName propertyName = item.getPropertyNameForDisplayInfo(option);
-                                assert propertyName != null;
-                                final ValuePropertyMetadata vpm
-                                        = Metadata.getMetadata().queryValueProperty(fxomInstance, propertyName);
-                                final BatchModifyObjectJob job
-                                        = new BatchModifyObjectJob(fxomInstance, vpm, newValue, editorController);
-                                if (job.isExecutable()) {
-                                    editorController.getJobManager().push(job);
+                            // If a controller class has been defined, 
+                            // check if the fx id is an injectable field
+                            final String controllerClass
+                                    = editorController.getFxomDocument().getFxomRoot().getFxController();
+                            if (controllerClass != null && fxId != null) {
+                                final URL location = editorController.getFxmlLocation();
+                                final Class<?> clazz = fxomObject.getSceneGraphObject() == null ? null
+                                        : fxomObject.getSceneGraphObject().getClass();
+                                final Glossary glossary = editorController.getGlossary();
+                                final List<String> fxIds1 = glossary.queryFxIds(location, controllerClass, clazz);
+                                if (fxIds1.contains(fxId) == false) {
+                                    editorController.getMessageLog().logWarningMessage(
+                                            "log.warning.no.injectable.fxid", fxId);
                                 }
                             }
-                            break;
-                        case FXID:
-                            assert newValue != null;
-                            final String fxId = newValue.isEmpty() ? null : newValue;
-                            final BatchModifyFxIdJob job
-                                    = new BatchModifyFxIdJob(fxomObject, fxId, editorController);
-                            if (job.isExecutable()) {
 
-                                // If a controller class has been defined, 
-                                // check if the fx id is an injectable field
-                                final String controllerClass
-                                        = editorController.getFxomDocument().getFxomRoot().getFxController();
-                                if (controllerClass != null && fxId != null) {
-                                    final URL location = editorController.getFxmlLocation();
-                                    final Class<?> clazz = fxomObject.getSceneGraphObject() == null ? null
-                                            : fxomObject.getSceneGraphObject().getClass();
-                                    final Glossary glossary = editorController.getGlossary();
-                                    final List<String> fxIds = glossary.queryFxIds(location, controllerClass, clazz);
-                                    if (fxIds.contains(fxId) == false) {
-                                        editorController.getMessageLog().logWarningMessage(
-                                                "log.warning.no.injectable.fxid", fxId);
-                                    }
-                                }
+                            // Check duplicared fx ids
+                            final FXOMDocument fxomDocument = editorController.getFxomDocument();
+                            final Set<String> fxIds2 = fxomDocument.collectFxIds().keySet();
+                            if (fxIds2.contains(fxId)) {
+                                editorController.getMessageLog().logWarningMessage(
+                                        "log.warning.duplicate.fxid", fxId);
+                            }
+                            
+                            editorController.getJobManager().push(job2);
 
-                                // Check duplicared fx ids
-                                final FXOMDocument fxomDocument = editorController.getFxomDocument();
-                                final Set<String> fxIds = fxomDocument.collectFxIds().keySet();
-                                if (fxIds.contains(fxId)) {
-                                    editorController.getMessageLog().logWarningMessage(
-                                            "log.warning.duplicate.fxid", fxId);
-                                }
-                                
-                                editorController.getJobManager().push(job);
-
-                            } else if (fxId != null) {
-                                editorController.getMessageLog().logWarningMessage(
-                                        "log.warning.invalid.fxid", fxId);
-                            }
-                            break;
-                        default:
-                            assert false;
-                            return false;
-                    }
+                        } else if (fxId != null) {
+                            editorController.getMessageLog().logWarningMessage(
+                                    "log.warning.invalid.fxid", fxId);
+                        }
+                        break;
+                    default:
+                        assert false;
+                        return false;
                 }
-                return true;
             }
+            return true;
         };
         inlineEditController.startEditingSession(editor, displayInfoLabel, requestCommit, null);
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java	Thu May 22 19:22:01 2014 -0700
@@ -34,8 +34,10 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.hierarchy.HierarchyItem;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.hierarchy.AbstractHierarchyPanelController;
+
 import java.util.List;
 import java.util.Set;
+
 import javafx.collections.ObservableList;
 import javafx.fxml.FXML;
 import javafx.geometry.Bounds;
@@ -49,7 +51,6 @@
 import javafx.scene.control.TreeCell;
 import javafx.scene.control.TreeItem;
 import javafx.scene.control.TreeView;
-import javafx.util.Callback;
 
 /**
  * Hierarchy panel controller based on the TreeView control.
@@ -80,12 +81,7 @@
         // Initialize and configure tree view
         treeView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
         // Cell factory
-        treeView.setCellFactory(new Callback<TreeView<HierarchyItem>, TreeCell<HierarchyItem>>() {
-            @Override
-            public TreeCell<HierarchyItem> call(TreeView<HierarchyItem> p) {
-                return new HierarchyTreeCell<>(HierarchyTreeViewController.this);
-            }
-        });
+        treeView.setCellFactory(p -> new HierarchyTreeCell<>(HierarchyTreeViewController.this));
         // We do not use the platform editing feature because 
         // editing is started on selection + simple click instead of double click
         treeView.setEditable(false);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -110,6 +110,7 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.util.ValuePropertyMetadataNameComparator;
 import com.oracle.javafx.scenebuilder.kit.util.CssInternal;
 import com.oracle.javafx.scenebuilder.kit.util.Deprecation;
+
 import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
@@ -127,9 +128,9 @@
 import java.util.SortedMap;
 import java.util.Stack;
 import java.util.TreeMap;
+
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.fxml.FXML;
 import javafx.geometry.HPos;
@@ -154,7 +155,6 @@
 import javafx.scene.layout.RowConstraints;
 import javafx.scene.layout.StackPane;
 import javafx.scene.layout.VBox;
-import javafx.util.Callback;
 
 /**
  *
@@ -465,13 +465,9 @@
     @Override
     protected void cssRevisionDidChange() {
 //        System.out.println("CSS changed.");
-        Platform.runLater(new Runnable() {
-
-            @Override
-            public void run() {
-                if (!dragOnGoing) {
-                    updateInspector();
-                }
+        Platform.runLater(() -> {
+            if (!dragOnGoing) {
+                updateInspector();
             }
         });
     }
@@ -518,52 +514,27 @@
         assert accordion != null;
         assert inspectorRoot != null;
 
-        propertiesTitledPane.expandedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean wasExpanded, Boolean expanded) {
-                handleTitledPane(wasExpanded, expanded, SectionId.PROPERTIES);
-            }
-        });
-        layoutTitledPane.expandedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean wasExpanded, Boolean expanded) {
-                handleTitledPane(wasExpanded, expanded, SectionId.LAYOUT);
-            }
-        });
-        codeTitledPane.expandedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean wasExpanded, Boolean expanded) {
-                handleTitledPane(wasExpanded, expanded, SectionId.CODE);
-            }
-        });
+        propertiesTitledPane.expandedProperty().addListener((ChangeListener<Boolean>) (ov, wasExpanded, expanded) -> handleTitledPane(wasExpanded, expanded, SectionId.PROPERTIES));
+        layoutTitledPane.expandedProperty().addListener((ChangeListener<Boolean>) (ov, wasExpanded, expanded) -> handleTitledPane(wasExpanded, expanded, SectionId.LAYOUT));
+        codeTitledPane.expandedProperty().addListener((ChangeListener<Boolean>) (ov, wasExpanded, expanded) -> handleTitledPane(wasExpanded, expanded, SectionId.CODE));
 
         // Clean the potential nodes added for design purpose in fxml
         clearSections();
 
         // Listen the drag property changes
-        getEditorController().getDragController().dragSourceProperty().addListener(new ChangeListener<AbstractDragSource>() {
-
-            @Override
-            public void changed(ObservableValue<? extends AbstractDragSource> ov, AbstractDragSource oldVal, AbstractDragSource newVal) {
-                if (newVal != null) {
+        getEditorController().getDragController().dragSourceProperty().addListener((ChangeListener<AbstractDragSource>) (ov, oldVal, newVal) -> {
+            if (newVal != null) {
 //                    System.out.println("Drag started !");
-                    dragOnGoing = true;
-                } else {
+                dragOnGoing = true;
+            } else {
 //                    System.out.println("Drag finished.");
-                    dragOnGoing = false;
-                    updateInspector();
-                }
+                dragOnGoing = false;
+                updateInspector();
             }
         });
         
         // Listen the Scene stylesheets changes
-        getEditorController().sceneStyleSheetProperty().addListener(new ChangeListener<ObservableList<File>>() {
-
-            @Override
-            public void changed(ObservableValue<? extends ObservableList<File>> ov, ObservableList<File> t, ObservableList<File> t1) {
-                    updateInspector();
-            }
-        });
+        getEditorController().sceneStyleSheetProperty().addListener((ChangeListener<ObservableList<File>>) (ov, t, t1) -> updateInspector());
         
         accordion.getStyleClass().add("INSPECTOR_THEME"); //NOI18N
         selectionState = new SelectionState(editorController);
@@ -1097,32 +1068,26 @@
 
     private void handleValueChange(PropertyEditor propertyEditor) {
         // Handle the value change
-        propertyEditor.addValueListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldValue, Object newValue) {
+        propertyEditor.addValueListener((ov, oldValue, newValue) -> {
 //                System.out.println("Value change : " + newValue);
-                if (!propertyEditor.isUpdateFromModel()) {
-                    lastPropertyEditorValueChanged = propertyEditor;
-                    updateValueInModel(propertyEditor, oldValue, newValue);
-                }
-                if (propertyEditor.isRuledByCss()) {
-                    editorController.getMessageLog().logWarningMessage(
-                            "inspector.css.overridden", propertyEditor.getPropertyNameText());
-                }
+            if (!propertyEditor.isUpdateFromModel()) {
+                lastPropertyEditorValueChanged = propertyEditor;
+                updateValueInModel(propertyEditor, oldValue, newValue);
+            }
+            if (propertyEditor.isRuledByCss()) {
+                editorController.getMessageLog().logWarningMessage(
+                        "inspector.css.overridden", propertyEditor.getPropertyNameText());
             }
         });
     }
 
     private void handleTransientValueChange(PropertyEditor propertyEditor) {
         // Handle the transient value change (no job here, only the scene graph is updated)
-        propertyEditor.addTransientValueListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldValue, Object newValue) {
+        propertyEditor.addTransientValueListener((ov, oldValue, newValue) -> {
 //                System.out.println("Transient value change : " + newValue);
-                lastPropertyEditorValueChanged = propertyEditor;
-                for (FXOMInstance fxomInstance : getSelectedInstances()) {
-                    propertyEditor.getPropertyMeta().setValueInSceneGraphObject(fxomInstance, newValue);
-                }
+            lastPropertyEditorValueChanged = propertyEditor;
+            for (FXOMInstance fxomInstance : getSelectedInstances()) {
+                propertyEditor.getPropertyMeta().setValueInSceneGraphObject(fxomInstance, newValue);
             }
         });
     }
@@ -1145,39 +1110,32 @@
 
     private void handleEditingChange(PropertyEditor propertyEditor) {
         // Handle the editing change
-        propertyEditor.addEditingListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                if (newValue) {
-                    // Editing session starting
+        propertyEditor.addEditingListener((ov, oldValue, newValue) -> {
+            if (newValue) {
+                // Editing session starting
 //                    System.out.println("textEditingSessionDidBegin() called.");
-                    editorController.textEditingSessionDidBegin(new Callback<Void, Boolean>() {
-
-                        @Override
-                        public Boolean call(Void p) {
-                            // requestSessionEnd
-                            if (propertyEditor.getCommitListener() != null) {
-                                propertyEditor.getCommitListener().handle(null);
-                            }
-                            boolean hasError = propertyEditor.isInvalidValue();
-                            if (!hasError) {
+                editorController.textEditingSessionDidBegin(p -> {
+                    // requestSessionEnd
+                    if (propertyEditor.getCommitListener() != null) {
+                        propertyEditor.getCommitListener().handle(null);
+                    }
+                    boolean hasError = propertyEditor.isInvalidValue();
+                    if (!hasError) {
 //                                System.out.println("textEditingSessionDidEnd() called (from callback).");
-                                if (editorController.isTextEditingSessionOnGoing()) {
-                                    editorController.textEditingSessionDidEnd();
-                                }
-                            }
+                        if (editorController.isTextEditingSessionOnGoing()) {
+                            editorController.textEditingSessionDidEnd();
+                        }
+                    }
 //                            System.out.println("textEditingSessionDidBegin callback returns : " + !hasError);
-                            return !hasError;
-                        }
-                    });
-                } else {
-                    // Editing session completed
-                    if (editorController.isTextEditingSessionOnGoing()) {
+                    return !hasError;
+                });
+            } else {
+                // Editing session completed
+                if (editorController.isTextEditingSessionOnGoing()) {
 //                        System.out.println("textEditingSessionDidEnd() called.");
-                        editorController.textEditingSessionDidEnd();
-                        if (propertyEditor.getCommitListener() != null) {
-                            propertyEditor.getCommitListener().handle(null);
-                        }
+                    editorController.textEditingSessionDidEnd();
+                    if (propertyEditor.getCommitListener() != null) {
+                        propertyEditor.getCommitListener().handle(null);
                     }
                 }
             }
@@ -1187,13 +1145,9 @@
 
     private void handleNavigateRequest(PropertyEditor propertyEditor) {
         // Handle a navigate request from an editor
-        propertyEditor.addNavigateListener(new ChangeListener<String>() {
-
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String oldStr, String newStr) {
-                if (newStr != null) {
-                    setFocusToEditor(new PropertyName(newStr));
-                }
+        propertyEditor.addNavigateListener((ov, oldStr, newStr) -> {
+            if (newStr != null) {
+                setFocusToEditor(new PropertyName(newStr));
             }
         });
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AnchorPaneConstraintsEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -34,11 +34,12 @@
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMInstance;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.value.DoublePropertyMetadata;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -46,7 +47,6 @@
 import javafx.scene.Parent;
 import javafx.scene.control.TextField;
 import javafx.scene.control.ToggleButton;
-import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.Region;
 
 /**
@@ -95,13 +95,9 @@
         root = EditorUtils.loadFxml("AnchorPaneConstraintsEditor.fxml", this);
         this.selectedInstances = selectedInstances;
 
-        constraintListener = new ChangeListener<Object>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object prevValue, Object newValue) {
-                propertyChanged();
-                styleRegions();
-            }
+        constraintListener = (ov, prevValue, newValue) -> {
+            propertyChanged();
+            styleRegions();
         };
 
         initialize(topPropMeta, rightPropMeta, bottomPropMeta, leftPropMeta);
@@ -195,100 +191,87 @@
             //
             // For SQE tests
             textField.setId(EditorUtils.toDisplayName(propMeta.getName().getName()) + " Value"); //NOI18N
-            EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    if (isHandlingError()) {
-                        // Event received because of focus lost due to error dialog
-                        return;
-                    }
-                    String valStr = textField.getText();
-                    if (valStr == null || valStr.isEmpty()) {
-                        if (toggleButton.isSelected()) {
-                            updateFromTextField = true;
-                            toggleButton.setSelected(false);
-                            updateFromTextField = false;
-                        }
-                        userUpdateValueProperty(null);
-                        return;
-                    }
-                    textField.selectAll();
-                    double valDouble;
-                    try {
-                        valDouble = Double.parseDouble(valStr);
-                    } catch (NumberFormatException e) {
-                        handleInvalidValue(valStr, textField);
-                        return;
-                    }
-                    if (!((DoublePropertyMetadata) getPropertyMeta()).isValidValue(valDouble)) {
-                        handleInvalidValue(valDouble, textField);
-                        return;
-                    }
-                    if (!toggleButton.isSelected()) {
+            EventHandler<ActionEvent> valueListener = event -> {
+                if (isHandlingError()) {
+                    // Event received because of focus lost due to error dialog
+                    return;
+                }
+                String valStr = textField.getText();
+                if (valStr == null || valStr.isEmpty()) {
+                    if (toggleButton.isSelected()) {
                         updateFromTextField = true;
-                        toggleButton.setSelected(true);
+                        toggleButton.setSelected(false);
                         updateFromTextField = false;
                     }
-                    userUpdateValueProperty(valDouble);
+                    userUpdateValueProperty(null);
+                    return;
                 }
+                textField.selectAll();
+                double valDouble;
+                try {
+                    valDouble = Double.parseDouble(valStr);
+                } catch (NumberFormatException e) {
+                    handleInvalidValue(valStr, textField);
+                    return;
+                }
+                if (!((DoublePropertyMetadata) getPropertyMeta()).isValidValue(valDouble)) {
+                    handleInvalidValue(valDouble, textField);
+                    return;
+                }
+                if (!toggleButton.isSelected()) {
+                    updateFromTextField = true;
+                    toggleButton.setSelected(true);
+                    updateFromTextField = false;
+                }
+                userUpdateValueProperty(valDouble);
             };
             setNumericEditorBehavior(this, textField, valueListener, false);
             // Override default promptText
             textField.setPromptText(""); //NOI18N
 
-            textField.setOnMouseClicked(new EventHandler<MouseEvent>() {
-
-                @Override
-                public void handle(MouseEvent t) {
-                    ConstraintEditor.this.toggleButton.setSelected(true);
-                }
-            });
+            textField.setOnMouseClicked(t -> ConstraintEditor.this.toggleButton.setSelected(true));
 
             //
             // Toggle button
             //
             assert propMeta instanceof DoublePropertyMetadata;
 
-            toggleButton.selectedProperty().addListener(new ChangeListener<Boolean>() {
+            toggleButton.selectedProperty().addListener((ChangeListener<Boolean>) (ov, prevSel, newSel) -> {
+//                System.out.println("toggleButton : selectedProperty changed!");
+                if (isUpdateFromModel() || updateFromTextField) {
+                    // nothing to do
+                    return;
+                }
 
-                @Override
-                public void changed(ObservableValue<? extends Boolean> ov, Boolean prevSel, Boolean newSel) {
-//                System.out.println("toggleButton : selectedProperty changed!");
-                    if (isUpdateFromModel() || updateFromTextField) {
-                        // nothing to do
-                        return;
+                // Update comes from toggleButton.
+                if (newSel) {
+                    // Anchor selected : compute its value from the selected node
+                    double anchor = 0;
+                    String propName = ConstraintEditor.this.propMeta.getName().toString();
+                    switch (propName) {
+                        // For the moment, we don't support multi-selection with different anchors:
+                        // the first instance anchor only is used.
+                        case topAnchorPropName:
+                            anchor = EditorUtils.computeTopAnchor(getFirstInstance());
+                            break;
+                        case rightAnchorPropName:
+                            anchor = EditorUtils.computeRightAnchor(getFirstInstance());
+                            break;
+                        case bottomAnchorPropName:
+                            anchor = EditorUtils.computeBottomAnchor(getFirstInstance());
+                            break;
+                        case leftAnchorPropName:
+                            anchor = EditorUtils.computeLeftAnchor(getFirstInstance());
+                            break;
+                        default:
+                            assert false;
                     }
-
-                    // Update comes from toggleButton.
-                    if (newSel) {
-                        // Anchor selected : compute its value from the selected node
-                        double anchor = 0;
-                        String propName = ConstraintEditor.this.propMeta.getName().toString();
-                        switch (propName) {
-                            // For the moment, we don't support multi-selection with different anchors:
-                            // the first instance anchor only is used.
-                            case topAnchorPropName:
-                                anchor = EditorUtils.computeTopAnchor(getFirstInstance());
-                                break;
-                            case rightAnchorPropName:
-                                anchor = EditorUtils.computeRightAnchor(getFirstInstance());
-                                break;
-                            case bottomAnchorPropName:
-                                anchor = EditorUtils.computeBottomAnchor(getFirstInstance());
-                                break;
-                            case leftAnchorPropName:
-                                anchor = EditorUtils.computeLeftAnchor(getFirstInstance());
-                                break;
-                            default:
-                                assert false;
-                        }
-                        textField.setText(EditorUtils.valAsStr(anchor));
-                        userUpdateValueProperty(getValue());
-                    } else {
-                        // Anchor unselected
-                        textField.setText(null);
-                        userUpdateValueProperty(null);
-                    }
+                    textField.setText(EditorUtils.valAsStr(anchor));
+                    userUpdateValueProperty(getValue());
+                } else {
+                    // Anchor unselected
+                    textField.setText(null);
+                    userUpdateValueProperty(null);
                 }
             });
         }
@@ -347,13 +330,7 @@
 
         @Override
         public void requestFocus() {
-            EditorUtils.doNextFrame(new Runnable() {
-
-                @Override
-                public void run() {
-                    textField.requestFocus();
-                }
-            });
+            EditorUtils.doNextFrame(() -> textField.requestFocus());
         }
         
         private FXOMInstance getFirstInstance() {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/AutoSuggestEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -32,15 +32,14 @@
 package com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors;
 
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.geometry.Side;
 import javafx.scene.Node;
@@ -137,18 +136,14 @@
     }
 
     private void initialize() {
-        entryField.focusedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean prevVal, Boolean newVal) {
-                if (newVal) {
-                    // Getting focus: show the popup
-                    suggest = true;
-                    handleSuggestedPopup();
-                } else {
-                    // Loosing focus: hide the popup
-                    hidePopup();
-                }
+        entryField.focusedProperty().addListener((ChangeListener<Boolean>) (ov, prevVal, newVal) -> {
+            if (newVal) {
+                // Getting focus: show the popup
+                suggest = true;
+                handleSuggestedPopup();
+            } else {
+                // Loosing focus: hide the popup
+                hidePopup();
             }
         });
         // Align popup with (at least its list view) with property text field
@@ -193,13 +188,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                entryField.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> entryField.requestFocus());
     }
 
     public void reset(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses, List<String> suggestedList) {
@@ -371,14 +360,10 @@
             MenuItem menuItem = new MenuItem(suggestItem);
 //            MenuItem menuItem = new MenuItem();
             menuItem.setMnemonicParsing(false);
-            menuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-                @Override
-                public void handle(ActionEvent t) {
-                    entryField.setText(suggestItem);
-                    if (AutoSuggestEditor.this.getCommitListener() != null) {
-                        AutoSuggestEditor.this.getCommitListener().handle(null);
-                    }
+            menuItem.setOnAction(t -> {
+                entryField.setText(suggestItem);
+                if (AutoSuggestEditor.this.getCommitListener() != null) {
+                    AutoSuggestEditor.this.getCommitListener().handle(null);
                 }
             });
             // Set the font on each item. Should be done from the FontEditor
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BooleanEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -54,12 +54,7 @@
         super(propMeta, selectedClasses);
         checkBox = new CheckBox();
         checkBox.disableProperty().bind(disableProperty());
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                userUpdateValueProperty(getValue());
-            }
-        };
+        EventHandler<ActionEvent> onActionListener = event -> userUpdateValueProperty(getValue());
         checkBox.setOnAction(onActionListener);
         setCommitListener(onActionListener);
         activeZone = new HBox();
@@ -101,12 +96,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                checkBox.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> checkBox.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/BoundedDoubleEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -33,14 +33,15 @@
 
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.value.DoublePropertyMetadata;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+
 import javafx.beans.InvalidationListener;
-import javafx.beans.Observable;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -101,53 +102,50 @@
         //
         // Text field
         //
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
-                    return;
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            if (isUpdateFromModel() || updateFromSlider) {
+                // nothing to do
+                return;
+            }
+
+            Object value = getValue();
+            if (getPropertyMeta() != null) {
+                if ((value == null)
+                        || !((DoublePropertyMetadata) getPropertyMeta()).isValidValue((Double) value)) {
+                    handleInvalidValue(getTextField().getText());
                 }
-                if (isUpdateFromModel() || updateFromSlider) {
-                    // nothing to do
-                    return;
+            }
+            assert value instanceof Double;
+            double valDouble = (Double) value;
+            // Check if the entered value is a constant string
+            boolean isConstant = constants.get(getTextField().getText().toUpperCase(Locale.ROOT)) != null;
+            // Check if the entered value is a constant value
+            for (Map.Entry<String, Object> entry : constants.entrySet()) {
+                if (value.equals(entry.getValue())) {
+                    isConstant = true;
+                    break;
                 }
-
-                Object value = getValue();
-                if (getPropertyMeta() != null) {
-                    if ((value == null)
-                            || !((DoublePropertyMetadata) getPropertyMeta()).isValidValue((Double) value)) {
-                        handleInvalidValue(getTextField().getText());
-                    }
+            }
+            // If the value is not a constant,
+            // and is less than the minimum, or more than the maximum,
+            // set the value to min or max
+            if (!minMaxForSliderOnly && !isConstant && (valDouble < min || valDouble > max)) {
+                if (valDouble < min) {
+                    valDouble = min;
+                } else if (valDouble > max) {
+                    valDouble = max;
                 }
-                assert value instanceof Double;
-                double valDouble = (Double) value;
-                // Check if the entered value is a constant string
-                boolean isConstant = constants.get(getTextField().getText().toUpperCase(Locale.ROOT)) != null;
-                // Check if the entered value is a constant value
-                for (Map.Entry<String, Object> entry : constants.entrySet()) {
-                    if (value.equals(entry.getValue())) {
-                        isConstant = true;
-                        break;
-                    }
-                }
-                // If the value is not a constant,
-                // and is less than the minimum, or more than the maximum,
-                // set the value to min or max
-                if (!minMaxForSliderOnly && !isConstant && (valDouble < min || valDouble > max)) {
-                    if (valDouble < min) {
-                        valDouble = min;
-                    } else if (valDouble > max) {
-                        valDouble = max;
-                    }
-                    getTextField().setText(EditorUtils.valAsStr(valDouble));
-                }
-                getTextField().selectAll();
-                updateFromTextField = true;
-                slider.setValue(valDouble);
-                updateFromTextField = false;
-                userUpdateValueProperty(valDouble);
+                getTextField().setText(EditorUtils.valAsStr(valDouble));
             }
+            getTextField().selectAll();
+            updateFromTextField = true;
+            slider.setValue(valDouble);
+            updateFromTextField = false;
+            userUpdateValueProperty(valDouble);
         };
         setNumericEditorBehavior(this, getTextField(), onActionListener, false);
 
@@ -156,34 +154,27 @@
         //
         configureSlider(getPropertyMeta());
 
-        slider.valueProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable valueModel) {
+        slider.valueProperty().addListener((InvalidationListener) valueModel -> {
 //                System.out.println("Slider : valueProperty changed!");
-                if (isUpdateFromModel() || updateFromTextField) {
-                    // nothing to do
-                    return;
-                }
+            if (isUpdateFromModel() || updateFromTextField) {
+                // nothing to do
+                return;
+            }
 
-                // Slider button moved or left/right key typed.
-                // In this case, we want to round the value,
-                // since the Slider may returns many decimals.
-                double value = EditorUtils.round(slider.getValue(), roundingFactor);
-                updateFromSlider = true;
-                getTextField().setText(EditorUtils.valAsStr(value));
-                updateFromSlider = false;
-                userUpdateTransientValueProperty(value);
-            }
+            // Slider button moved or left/right key typed.
+            // In this case, we want to round the value,
+            // since the Slider may returns many decimals.
+            double value = EditorUtils.round(slider.getValue(), roundingFactor);
+            updateFromSlider = true;
+            getTextField().setText(EditorUtils.valAsStr(value));
+            updateFromSlider = false;
+            userUpdateTransientValueProperty(value);
         });
 
-        slider.pressedProperty().addListener(new InvalidationListener() {
-
-            @Override
-            public void invalidated(Observable valueModel) {
-                if (!slider.isPressed()) {
-                    double value = EditorUtils.round(slider.getValue(), roundingFactor);
-                    userUpdateValueProperty(value);
-                }
+        slider.pressedProperty().addListener((InvalidationListener) valueModel -> {
+            if (!slider.isPressed()) {
+                double value = EditorUtils.round(slider.getValue(), roundingFactor);
+                userUpdateValueProperty(value);
             }
         });
         // Add the AutoSuggest text field in the scene graph
@@ -263,12 +254,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                getTextField().requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> getTextField().requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ControllerClassEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -51,26 +51,23 @@
         super(PROPERTY_NAME, DEFAULT_VALUE, suggestedClasses);
 
         // text field events handling
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            
+            String value = textField.getText();
+            
+            if (value != null && !value.isEmpty()) {
+                if (!JavaLanguage.isClassName(value)) {
+                    handleInvalidValue(value);
                     return;
                 }
-                
-                String value = textField.getText();
-                
-                if (value != null && !value.isEmpty()) {
-                    if (!JavaLanguage.isClassName(value)) {
-                        handleInvalidValue(value);
-                        return;
-                    }
-                }
-                
-                userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
-                textField.selectAll();
             }
+            
+            userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
+            textField.selectAll();
         };
         setTextEditorBehavior(this, textField, onActionListener);
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/CursorEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -34,10 +34,11 @@
 import com.oracle.javafx.scenebuilder.kit.editor.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.value.CursorPropertyMetadata;
+
 import java.util.Map;
 import java.util.Set;
+
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.Cursor;
 import javafx.scene.ImageCursor;
@@ -91,12 +92,9 @@
             menuItem.setGraphic(cursorLabel);
             // add predefined cursors before "inherited" menu item
             cursorMb.getItems().add(index++, menuItem);
-            menuItem.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    selectCursor(cursorStr);
-                    userUpdateValueProperty(getValue());
-                }
+            menuItem.setOnAction(e -> {
+                selectCursor(cursorStr);
+                userUpdateValueProperty(getValue());
             });
         }
 
@@ -188,12 +186,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                cursorMb.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> cursorMb.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DividerPositionsEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -125,14 +125,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-
-                getDoubleFields().get(0).requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> getDoubleFields().get(0).requestFocus());
     }
 
     private void fillVBox(List<Double> values) {
@@ -142,12 +135,7 @@
             DoubleField doubleField = new DoubleField();
             doubleField.setText(EditorUtils.valAsStr(val));
             vbox.getChildren().add(doubleField);
-            EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    userUpdateValueProperty(getValue());
-                }
-            };
+            EventHandler<ActionEvent> valueListener = event -> userUpdateValueProperty(getValue());
             setNumericEditorBehavior(this, doubleField, valueListener, false);
         }
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/DoubleEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -56,20 +56,17 @@
         super(propMeta, selectedClasses, new ArrayList<>(constants.keySet()), AutoSuggestEditor.Type.DOUBLE);
         this.constants = constants;
 
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
-                    return;
-                }
-                Object value = getValue();
-                if ((value != null) && ((DoublePropertyMetadata) getPropertyMeta()).isValidValue((Double) value)) {
-                    userUpdateValueProperty(value);
-                    getTextField().selectAll();
-                } else {
-                    handleInvalidValue(getTextField().getText());
-                }
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            Object value = getValue();
+            if ((value != null) && ((DoublePropertyMetadata) getPropertyMeta()).isValidValue((Double) value)) {
+                userUpdateValueProperty(value);
+                getTextField().selectAll();
+            } else {
+                handleInvalidValue(getTextField().getText());
             }
         };
 
@@ -114,13 +111,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                getTextField().requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> getTextField().requestFocus());
     }
 
     public void reset(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses,
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorUtils.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EditorUtils.java	Thu May 22 19:22:01 2014 -0700
@@ -42,6 +42,7 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PrefixedValue;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PropertyName;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -52,13 +53,13 @@
 import java.util.Locale;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
+
 import javafx.animation.AnimationTimer;
 import javafx.animation.FadeTransition;
 import javafx.beans.InvalidationListener;
 import javafx.beans.Observable;
 import javafx.beans.property.BooleanProperty;
 import javafx.collections.ObservableList;
-import javafx.event.EventHandler;
 import javafx.fxml.FXMLLoader;
 import javafx.geometry.Bounds;
 import javafx.geometry.VPos;
@@ -66,7 +67,6 @@
 import javafx.scene.Parent;
 import javafx.scene.control.Control;
 import javafx.scene.control.MenuButton;
-import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.GridPane;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Pane;
@@ -379,33 +379,27 @@
      * Fading is activated from a fadingSource node.
      */
     public static void handleFading(FadeTransition fadeTransition, Node fadingSource, BooleanProperty disableProperty) {
-        fadingSource.setOnMouseEntered(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent arg0) {
-                Node targetNode = fadeTransition.getNode();
-                if ((targetNode instanceof MenuButton) && ((MenuButton) targetNode).isShowing()) {
-                    return;
-                }
-                if (disableProperty != null && disableProperty.getValue()) {
-                    // Nothing to do if disabled
-                    return;
-                }
-                fadeTo(fadeTransition, 1);
+        fadingSource.setOnMouseEntered(arg0 -> {
+            Node targetNode = fadeTransition.getNode();
+            if ((targetNode instanceof MenuButton) && ((MenuButton) targetNode).isShowing()) {
+                return;
             }
+            if (disableProperty != null && disableProperty.getValue()) {
+                // Nothing to do if disabled
+                return;
+            }
+            fadeTo(fadeTransition, 1);
         });
-        fadingSource.setOnMouseExited(new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(MouseEvent arg0) {
-                Node targetNode = fadeTransition.getNode();
-                if ((targetNode instanceof MenuButton) && ((MenuButton) targetNode).isShowing()) {
-                    return;
-                }
-                if (disableProperty != null && disableProperty.getValue()) {
-                    // Nothing to do if disabled
-                    return;
-                }
-                fadeTo(fadeTransition, 0);
+        fadingSource.setOnMouseExited(arg0 -> {
+            Node targetNode = fadeTransition.getNode();
+            if ((targetNode instanceof MenuButton) && ((MenuButton) targetNode).isShowing()) {
+                return;
             }
+            if (disableProperty != null && disableProperty.getValue()) {
+                // Nothing to do if disabled
+                return;
+            }
+            fadeTo(fadeTransition, 0);
         });
     }
 
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EnumEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -33,9 +33,10 @@
 
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.value.EnumerationPropertyMetadata;
+
 import java.util.Set;
+
 import javafx.beans.InvalidationListener;
-import javafx.beans.Observable;
 import javafx.scene.Node;
 import javafx.scene.control.ChoiceBox;
 
@@ -53,12 +54,9 @@
         choiceBox = new ChoiceBox<>();
         choiceBox.disableProperty().bind(disableProperty());
         EditorUtils.makeWidthStretchable(choiceBox);
-        choiceBox.getSelectionModel().selectedItemProperty().addListener(new InvalidationListener() {
-            @Override
-            public void invalidated(Observable o) {
-                if (!isUpdateFromModel()) {
-                    userUpdateValueProperty(getValue());
-                }
+        choiceBox.getSelectionModel().selectedItemProperty().addListener((InvalidationListener) o -> {
+            if (!isUpdateFromModel()) {
+                userUpdateValueProperty(getValue());
             }
         });
         initialize();
@@ -120,13 +118,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                choiceBox.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> choiceBox.requestFocus());
     }
 
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EventHandlerEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/EventHandlerEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -69,46 +69,37 @@
         this.suggestedMethods = suggestedMethods;
 
         // text field events handling
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                String tfValue = getTextField().getText();
-                if (tfValue == null || tfValue.isEmpty()) {
-                    userUpdateValueProperty(null);
+        EventHandler<ActionEvent> onActionListener = event -> {
+            String tfValue = getTextField().getText();
+            if (tfValue == null || tfValue.isEmpty()) {
+                userUpdateValueProperty(null);
+                return;
+            }
+            if (methodNameMode) {
+                // method name should be a java identifier
+                if (!JavaLanguage.isIdentifier(tfValue)) {
+                    System.err.println(I18N.getString("inspector.event.invalid.method", tfValue)); // Will go in message panel
+                    handleInvalidValue(tfValue);
                     return;
                 }
-                if (methodNameMode) {
-                    // method name should be a java identifier
-                    if (!JavaLanguage.isIdentifier(tfValue)) {
-                        System.err.println(I18N.getString("inspector.event.invalid.method", tfValue)); // Will go in message panel
-                        handleInvalidValue(tfValue);
-                        return;
-                    }
-                }
-                Object value = getValue();
-                assert value instanceof String;
-                userUpdateValueProperty((String) value);
-                getTextField().selectAll();
             }
+            Object value = getValue();
+            assert value instanceof String;
+            userUpdateValueProperty((String) value);
+            getTextField().selectAll();
         };
         setTextEditorBehavior(this, getTextField(), onActionListener);
 
-        scriptMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                getTextField().setText(null);
-                userUpdateValueProperty(null);
-                switchToScriptMode();
-            }
+        scriptMenuItem.setOnAction(e -> {
+            getTextField().setText(null);
+            userUpdateValueProperty(null);
+            switchToScriptMode();
         });
 
-        controllerMethodMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                getTextField().setText(null);
-                userUpdateValueProperty(null);
-                switchToMethodNameMode();
-            }
+        controllerMethodMenuItem.setOnAction(e -> {
+            getTextField().setText(null);
+            userUpdateValueProperty(null);
+            switchToMethodNameMode();
         });
         getMenu().getItems().add(controllerMethodMenuItem);
 
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/FxIdEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/FxIdEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -56,34 +56,31 @@
         this.editorController = editorController;
 
         // text field events handling
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            String value = textField.getText();
+            if (value != null && !value.isEmpty()) {
+                if (!JavaLanguage.isIdentifier(value)) {
+//                        System.err.println(I18N.getString("log.warning.invalid.fxid", value));
+                    handleInvalidValue(value);
                     return;
                 }
-                String value = textField.getText();
-                if (value != null && !value.isEmpty()) {
-                    if (!JavaLanguage.isIdentifier(value)) {
-//                        System.err.println(I18N.getString("log.warning.invalid.fxid", value));
-                        handleInvalidValue(value);
-                        return;
-                    }
-                    if (isValueChanged(value)) {
-                        // Avoid multiple identical messages
-                        if (getFxIdsInUse().contains(value)) {
-                            editorController.getMessageLog().logWarningMessage(
-                                    "log.warning.duplicate.fxid", value); //NOI18N
-                        } else if ((getControllerClass() != null) && !getSuggestedList().contains(value)) {
-                            editorController.getMessageLog().logWarningMessage(
-                                    "log.warning.no.injectable.fxid", value); //NOI18N
-                        }
+                if (isValueChanged(value)) {
+                    // Avoid multiple identical messages
+                    if (getFxIdsInUse().contains(value)) {
+                        editorController.getMessageLog().logWarningMessage(
+                                "log.warning.duplicate.fxid", value); //NOI18N
+                    } else if ((getControllerClass() != null) && !getSuggestedList().contains(value)) {
+                        editorController.getMessageLog().logWarningMessage(
+                                "log.warning.no.injectable.fxid", value); //NOI18N
                     }
                 }
-                userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
-                textField.selectAll();
             }
+            userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
+            textField.selectAll();
         };
         setTextEditorBehavior(this, textField, onActionListener);
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/GenericEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -51,12 +51,7 @@
     public GenericEditor(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses) {
         super(propMeta, selectedClasses);
         textField = new TextField();
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                userUpdateValueProperty(getValue());
-            }
-        };
+        EventHandler<ActionEvent> onActionListener = event -> userUpdateValueProperty(getValue());
         setTextEditorBehavior(this, textField, onActionListener);
         setDisable(true);
     }
@@ -99,12 +94,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                textField.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> textField.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/I18nStringEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -72,41 +72,32 @@
     public I18nStringEditor(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses) {
         super(propMeta, selectedClasses);
 
-        valueListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                userUpdateValueProperty(getValue());
-                textNode.selectAll();
-            }
+        valueListener = event -> {
+            userUpdateValueProperty(getValue());
+            textNode.selectAll();
         };
         setTextEditorBehavior(this, textNode, valueListener);
 
         getMenu().getItems().add(i18nMenuItem);
         getMenu().getItems().add(multilineMenuItem);
 
-        i18nMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                if (!i18nMode) {
-                    setValue(new PrefixedValue(PrefixedValue.Type.RESOURCE_KEY, I18N.getString("inspector.i18n.dummykey")).toString());
-                } else {
-                    setValue(""); //NOI18N
-                }
-                I18nStringEditor.this.getCommitListener().handle(null);
-                updateMenuItems();
+        i18nMenuItem.setOnAction(e -> {
+            if (!i18nMode) {
+                setValue(new PrefixedValue(PrefixedValue.Type.RESOURCE_KEY, I18N.getString("inspector.i18n.dummykey")).toString());
+            } else {
+                setValue(""); //NOI18N
             }
+            I18nStringEditor.this.getCommitListener().handle(null);
+            updateMenuItems();
         });
-        multilineMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                if (!multiLineMode) {
-                    switchToTextArea();
-                } else {
-                    switchToTextField();
-                }
-                multiLineMode = !multiLineMode;
-                updateMenuItems();
+        multilineMenuItem.setOnAction(e -> {
+            if (!multiLineMode) {
+                switchToTextArea();
+            } else {
+                switchToTextField();
             }
+            multiLineMode = !multiLineMode;
+            updateMenuItems();
         });
     }
 
@@ -259,13 +250,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                textNode.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> textNode.requestFocus());
     }
 
     private void updateMenuItems() {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ImageEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -81,31 +81,28 @@
         this.fxmlFileLocation = fxmlFileLocation;
         root = EditorUtils.loadFxml("ImageEditor.fxml", this); //NOI18N
 
-        EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                Image imageObj;
-                String prefixedValue = null;
-                URL url;
-                try {
-                    String suffix = imagePathTf.getText();
-                    if (suffix == null || suffix.isEmpty()) {
-                        image = null;
-                        switchType(PrefixedValue.Type.PLAIN_STRING);
-                        userUpdateValueProperty(image);
-                        return;
-                    }
-                    prefixedValue = new PrefixedValue(type, suffix).toString();
-                    url = EditorUtils.getUrl(suffix, type, ImageEditor.this.fxmlFileLocation);
-                    imageObj = new Image(url != null ? url.toExternalForm() : null);
-                } catch (NullPointerException | IllegalArgumentException ex) {
-                    // Always happen for classpath relative, or if the url cannot be resolved.
-                    // In this case we cannot resolve the reference, so we use a dummy image.
-                    imageObj = new Image(DesignImage.getVoidImageUrl().toExternalForm());
+        EventHandler<ActionEvent> valueListener = event -> {
+            Image imageObj;
+            String prefixedValue = null;
+            URL url;
+            try {
+                String suffix = imagePathTf.getText();
+                if (suffix == null || suffix.isEmpty()) {
+                    image = null;
+                    switchType(PrefixedValue.Type.PLAIN_STRING);
+                    userUpdateValueProperty(image);
+                    return;
                 }
-                image = new DesignImage(imageObj, prefixedValue);
-                userUpdateValueProperty(image);
+                prefixedValue = new PrefixedValue(type, suffix).toString();
+                url = EditorUtils.getUrl(suffix, type, ImageEditor.this.fxmlFileLocation);
+                imageObj = new Image(url != null ? url.toExternalForm() : null);
+            } catch (NullPointerException | IllegalArgumentException ex) {
+                // Always happen for classpath relative, or if the url cannot be resolved.
+                // In this case we cannot resolve the reference, so we use a dummy image.
+                imageObj = new Image(DesignImage.getVoidImageUrl().toExternalForm());
             }
+            image = new DesignImage(imageObj, prefixedValue);
+            userUpdateValueProperty(image);
         };
         initialize(valueListener);
     }
@@ -114,24 +111,9 @@
     private void initialize(EventHandler<ActionEvent> valueListener) {
         setTextEditorBehavior(this, imagePathTf, valueListener);
 
-        documentRelativeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(PrefixedValue.Type.DOCUMENT_RELATIVE_PATH);
-            }
-        });
-        classPathRelativeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(PrefixedValue.Type.CLASSLOADER_RELATIVE_PATH);
-            }
-        });
-        absoluteMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(PrefixedValue.Type.PLAIN_STRING);
-            }
-        });
+        documentRelativeMenuItem.setOnAction(e -> switchType(PrefixedValue.Type.DOCUMENT_RELATIVE_PATH));
+        classPathRelativeMenuItem.setOnAction(e -> switchType(PrefixedValue.Type.CLASSLOADER_RELATIVE_PATH));
+        absoluteMenuItem.setOnAction(e -> switchType(PrefixedValue.Type.PLAIN_STRING));
         getMenu().getItems().addAll(documentRelativeMenuItem, classPathRelativeMenuItem, absoluteMenuItem);
         removeLabel();
         updateMenuItems();
@@ -294,12 +276,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                imagePathTf.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> imagePathTf.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/InsetsEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -81,16 +81,13 @@
         textFields[2] = bottomTf;
         textFields[3] = leftTf;
         for (TextField tf : textFields) {
-            EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    if (isHandlingError()) {
-                        // Event received because of focus lost due to error dialog
-                        return;
-                    }
-                    // !! Should check if invalid value ! 
-                    userUpdateValueProperty(getValue());
+            EventHandler<ActionEvent> valueListener = event -> {
+                if (isHandlingError()) {
+                    // Event received because of focus lost due to error dialog
+                    return;
                 }
+                // !! Should check if invalid value ! 
+                userUpdateValueProperty(getValue());
             };
             setNumericEditorBehavior(this, tf, valueListener, false);
         }
@@ -179,15 +176,11 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                if (errorTf != null) {
-                    errorTf.requestFocus();
-                } else {
-                    topTf.requestFocus();
-                }
+        EditorUtils.doNextFrame(() -> {
+            if (errorTf != null) {
+                errorTf.requestFocus();
+            } else {
+                topTf.requestFocus();
             }
         });
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/IntegerEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -61,34 +61,31 @@
         this.min = minVal;
         this.max = maxVal;
 
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
-                    return;
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            Object value = getValue();
+            if ((value != null) && ((IntegerPropertyMetadata) getPropertyMeta()).isValidValue((Integer) value)) {
+                String constantStr = getConstant(value);
+                if (constantStr != null) {
+                    getTextField().setText(constantStr);
+                } else {
+                    assert value instanceof Integer;
+                    int val = (Integer) value;
+                    if (val < min) {
+                        val = min;
+                    } else if (val > max) {
+                        val = max;
+                    }
+                    value = val;
+                    getTextField().setText(value.toString());
                 }
-                Object value = getValue();
-                if ((value != null) && ((IntegerPropertyMetadata) getPropertyMeta()).isValidValue((Integer) value)) {
-                    String constantStr = getConstant(value);
-                    if (constantStr != null) {
-                        getTextField().setText(constantStr);
-                    } else {
-                        assert value instanceof Integer;
-                        int val = (Integer) value;
-                        if (val < min) {
-                            val = min;
-                        } else if (val > max) {
-                            val = max;
-                        }
-                        value = val;
-                        getTextField().setText(value.toString());
-                    }
-                    userUpdateValueProperty(value);
-                    getTextField().selectAll();
-                } else {
-                    handleInvalidValue(getTextField().getText());
-                }
+                userUpdateValueProperty(value);
+                getTextField().selectAll();
+            } else {
+                handleInvalidValue(getTextField().getText());
             }
         };
 
@@ -135,13 +132,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                getTextField().requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> getTextField().requestFocus());
     }
 
     public void reset(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses,
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/Point3DEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -71,12 +71,7 @@
         doubleFields[1] = yDf;
         doubleFields[2] = zDf;
         for (DoubleField doubleField : doubleFields) {
-            EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    userUpdateValueProperty(getValue());
-                }
-            };
+            EventHandler<ActionEvent> valueListener = event -> userUpdateValueProperty(getValue());
             setNumericEditorBehavior(this, doubleField, valueListener, false);
         }
     }
@@ -140,14 +135,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-
-                xDf.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> xDf.requestFocus());
     }
 
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertiesEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertiesEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -33,12 +33,11 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
+
 import java.util.List;
+
 import javafx.animation.FadeTransition;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.scene.control.Label;
 import javafx.scene.control.MenuButton;
 import javafx.scene.control.MenuItem;
@@ -90,25 +89,19 @@
             EditorUtils.handleFading(fadeTransition, menu);
             EditorUtils.handleFading(fadeTransition, getValueEditor());
 
-            menu.focusedProperty().addListener(new ChangeListener<Boolean>() {
-                @Override
-                public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
-                    if (newValue) {
-                        // focused
-                        EditorUtils.fadeTo(fadeTransition, 1);
-                    } else {
-                        // focus lost
-                        EditorUtils.fadeTo(fadeTransition, 0);
-                    }
+            menu.focusedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> {
+                if (newValue) {
+                    // focused
+                    EditorUtils.fadeTo(fadeTransition, 1);
+                } else {
+                    // focus lost
+                    EditorUtils.fadeTo(fadeTransition, 0);
                 }
             });
             menu.getItems().add(resetvalueMenuItem);
-            resetvalueMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    for (PropertyEditor propertyEditor : getPropertyEditors()) {
-                        propertyEditor.setValue(propertyEditor.getPropertyMeta().getDefaultValueObject());
-                    }
+            resetvalueMenuItem.setOnAction(e -> {
+                for (PropertyEditor propertyEditor : getPropertyEditors()) {
+                    propertyEditor.setValue(propertyEditor.getPropertyMeta().getDefaultValueObject());
                 }
             });
         }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/PropertyEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -39,11 +39,13 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PropertyName;
 import com.oracle.javafx.scenebuilder.kit.util.CssInternal.CssPropAuthorInfo;
+
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
+
 import javafx.animation.FadeTransition;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ObjectProperty;
@@ -53,7 +55,6 @@
 import javafx.beans.property.StringProperty;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableBooleanValue;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.geometry.Pos;
@@ -72,7 +73,6 @@
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.KeyCode;
-import javafx.scene.input.KeyEvent;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Region;
 import javafx.util.Duration;
@@ -146,23 +146,20 @@
     private void initialize() {
         // Create a property link with a pretty name (e.g. layoutX ==> Layout X)
         propName = new Hyperlink();
-        propName.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                try {
-                    if (propMeta != null && selectedClasses != null) {
-                        if (selectedClasses.size() <= 1) {
-                            EditorUtils.openUrl(selectedClasses, propMeta);
-                        }
-                    } else {
-                        // Special case for non-properties (fx:id, ...)
-                        EditorPlatform.open(EditorPlatform.JAVADOC_HOME
-                                + "javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html"); //NOI18N
+        propName.setOnAction(event -> {
+            try {
+                if (propMeta != null && selectedClasses != null) {
+                    if (selectedClasses.size() <= 1) {
+                        EditorUtils.openUrl(selectedClasses, propMeta);
                     }
-                    // Selection of multiple different classes ==> no link
-                } catch (IOException ex) {
-                    System.err.println(ex.getMessage());
+                } else {
+                    // Special case for non-properties (fx:id, ...)
+                    EditorPlatform.open(EditorPlatform.JAVADOC_HOME
+                            + "javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html"); //NOI18N
                 }
+                // Selection of multiple different classes ==> no link
+            } catch (IOException ex) {
+                System.err.println(ex.getMessage());
             }
         });
         propName.getStyleClass().add("property-link"); //NOI18N
@@ -213,25 +210,19 @@
             }
             EditorUtils.handleFading(fadeTransition, menu, disableProperty);
             EditorUtils.handleFading(fadeTransition, propNameNode, disableProperty);
-            menu.focusedProperty().addListener(new ChangeListener<Boolean>() {
-                @Override
-                public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
-                    if (newValue) {
-                        // focused
-                        EditorUtils.fadeTo(fadeTransition, 1);
-                    } else {
-                        // focus lost
-                        EditorUtils.fadeTo(fadeTransition, 0);
-                    }
+            menu.focusedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> {
+                if (newValue) {
+                    // focused
+                    EditorUtils.fadeTo(fadeTransition, 1);
+                } else {
+                    // focus lost
+                    EditorUtils.fadeTo(fadeTransition, 0);
                 }
             });
             menu.getItems().add(resetvalueMenuItem);
-            resetvalueMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent e) {
-                    setValue(defaultValue);
-                    userUpdateValueProperty(defaultValue);
-                }
+            resetvalueMenuItem.setOnAction(e -> {
+                setValue(defaultValue);
+                userUpdateValueProperty(defaultValue);
             });
         }
         return menu;
@@ -548,22 +539,19 @@
             // menu
             if (showCssMenuItem == null) {
                 showCssMenuItem = new MenuItem(I18N.getString("inspector.css.showcss")); //NOI18N
-                showCssMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-                    @Override
-                    public void handle(ActionEvent e) {
-                        assert cssInfo != null;
-                        if (cssInfo.isInline()) {
-                            // Jump to the "style" property
-                            navigateRequestProperty.setValue("style"); //NOI18N
-                            navigateRequestProperty.setValue(null);
-                        } else {
-                            // Open the css file
-                            if (cssInfo.getMainUrl() != null) {
-                                try {
-                                    EditorPlatform.open(cssInfo.getMainUrl().toString());
-                                } catch (IOException ex) {
-                                    System.out.println(ex.getMessage() + ex);
-                                }
+                showCssMenuItem.setOnAction(e -> {
+                    assert cssInfo != null;
+                    if (cssInfo.isInline()) {
+                        // Jump to the "style" property
+                        navigateRequestProperty.setValue("style"); //NOI18N
+                        navigateRequestProperty.setValue(null);
+                    } else {
+                        // Open the css file
+                        if (cssInfo.getMainUrl() != null) {
+                            try {
+                                EditorPlatform.open(cssInfo.getMainUrl().toString());
+                            } catch (IOException ex) {
+                                System.out.println(ex.getMessage() + ex);
                             }
                         }
                     }
@@ -747,59 +735,52 @@
     protected void setNumericEditorBehavior(PropertyEditor editor, Control control,
             EventHandler<ActionEvent> onActionListener, boolean stretchable) {
         setTextEditorBehavior(editor, control, onActionListener, stretchable);
-        control.setOnKeyPressed(new EventHandler<KeyEvent>() {
-
-            @Override
-            public void handle(KeyEvent event) {
-                if (event.getCode() != KeyCode.UP && event.getCode() != KeyCode.DOWN) {
-                    return;
-                }
-                if (!(control instanceof TextField)) {
-                    // Apply only for text field based controls
-                    return;
-                }
-                TextField textField = (TextField) control;
-                int incDecVal = 1;
-                boolean shiftDown = event.isShiftDown();
-                if (shiftDown) {
-                    incDecVal = 10;
-                }
-                String valStr = textField.getText();
-                Double val;
-                try {
-                    val = Double.parseDouble(valStr);
-                } catch (NumberFormatException ex) {
-                    // may happen if the text field is empty,
-                    // or contains a constant string: do nothing
-                    return;
-                }
-                assert val != null;
-                Double newVal = null;
-                if (event.getCode() == KeyCode.UP) {
-                    newVal = val + incDecVal;
-                } else if (event.getCode() == KeyCode.DOWN) {
-                    newVal = val - incDecVal;
-                }
-                textField.setText(EditorUtils.valAsStr(newVal));
-                getCommitListener().handle(null);
-                event.consume();
+        control.setOnKeyPressed(event -> {
+            if (event.getCode() != KeyCode.UP && event.getCode() != KeyCode.DOWN) {
+                return;
             }
+            if (!(control instanceof TextField)) {
+                // Apply only for text field based controls
+                return;
+            }
+            TextField textField = (TextField) control;
+            int incDecVal = 1;
+            boolean shiftDown = event.isShiftDown();
+            if (shiftDown) {
+                incDecVal = 10;
+            }
+            String valStr = textField.getText();
+            Double val;
+            try {
+                val = Double.parseDouble(valStr);
+            } catch (NumberFormatException ex) {
+                // may happen if the text field is empty,
+                // or contains a constant string: do nothing
+                return;
+            }
+            assert val != null;
+            Double newVal = null;
+            if (event.getCode() == KeyCode.UP) {
+                newVal = val + incDecVal;
+            } else if (event.getCode() == KeyCode.DOWN) {
+                newVal = val - incDecVal;
+            }
+            textField.setText(EditorUtils.valAsStr(newVal));
+            getCommitListener().handle(null);
+            event.consume();
         });
     }
 
     private void addFocusListener(TextInputControl tic, EventHandler<ActionEvent> onActionListener) {
-        tic.focusedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
-                if (!newValue && tic.isEditable()) {
-                    // focus lost
+        tic.focusedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> {
+            if (!newValue && tic.isEditable()) {
+                // focus lost
 //                    System.out.println("editingProperty() set to false.");
-                    editingProperty().setValue(false);
-                } else if (newValue && tic.isEditable()) {
-                    // got focus
+                editingProperty().setValue(false);
+            } else if (newValue && tic.isEditable()) {
+                // got focus
 //                    System.out.println("editingProperty() set to true.");
-                    editingProperty().setValue(true);
-                }
+                editingProperty().setValue(true);
             }
         });
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/RotateEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -73,30 +73,27 @@
         //
         // Text field
         //
-        EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
-                    return;
-                }
-                String valStr = rotateTf.getText();
-                double valDouble;
-                try {
-                    valDouble = Double.parseDouble(valStr);
-                } catch (NumberFormatException e) {
-                    handleInvalidValue(valStr);
-                    return;
-                }
-                if (!((DoublePropertyMetadata) getPropertyMeta()).isValidValue(valDouble)) {
-                    handleInvalidValue(valDouble);
-                    return;
-                }
-                rotate(valDouble);
-                rotateTf.selectAll();
-                userUpdateValueProperty(valDouble);
+        EventHandler<ActionEvent> valueListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            String valStr = rotateTf.getText();
+            double valDouble;
+            try {
+                valDouble = Double.parseDouble(valStr);
+            } catch (NumberFormatException e) {
+                handleInvalidValue(valStr);
+                return;
+            }
+            if (!((DoublePropertyMetadata) getPropertyMeta()).isValidValue(valDouble)) {
+                handleInvalidValue(valDouble);
+                return;
+            }
+            rotate(valDouble);
+            rotateTf.selectAll();
+            userUpdateValueProperty(valDouble);
 
-            }
         };
         initialize(valueListener);
     }
@@ -179,13 +176,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                rotateTf.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> rotateTf.requestFocus());
     }
 
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StringEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -53,12 +53,9 @@
     public StringEditor(ValuePropertyMetadata propMeta, Set<Class<?>> selectedClasses) {
         super(propMeta, selectedClasses);
 
-        valueListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                userUpdateValueProperty(getValue());
-                textField.selectAll();
-            }
+        valueListener = event -> {
+            userUpdateValueProperty(getValue());
+            textField.selectAll();
         };
         setTextEditorBehavior(this, textField, valueListener);
         
@@ -105,12 +102,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                textField.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> textField.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleClassEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -50,7 +50,6 @@
 import java.util.Set;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
@@ -90,13 +89,7 @@
         addItem(getNewStyleClassItem());
 
         // On Theme change, update the themeClasses
-        editorController.themeProperty().addListener(new ChangeListener<Theme>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Theme> ov, Theme t, Theme t1) {
-                themeClasses = CssInternal.getThemeStyleClasses(StyleClassEditor.this.editorController.getTheme());
-            }
-        });
+        editorController.themeProperty().addListener((ChangeListener<Theme>) (ov, t, t1) -> themeClasses = CssInternal.getThemeStyleClasses(StyleClassEditor.this.editorController.getTheme()));
     }
 
     private StyleClassItem getNewStyleClassItem() {
@@ -245,51 +238,41 @@
             styleClassSp.getChildren().add(super.getRoot());
 
             styleClassTf = super.getTextField();
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
+            EventHandler<ActionEvent> onActionListener = event -> {
 //                    System.out.println("StyleClassItem : onActionListener");
-                    if (getValue().equals(currentValue)) {
-                        // no change
-                        return;
-                    }
-                    if (styleClassTf.getText().isEmpty()) {
-                        remove(null);
-                    }
+                if (getValue().equals(currentValue)) {
+                    // no change
+                    return;
+                }
+                if (styleClassTf.getText().isEmpty()) {
+                    remove(null);
+                }
 //                        System.out.println("StyleEditorItem : COMMIT");
-                    editor.commit(StyleClassItem.this);
-                    if ((event != null) && event.getSource() instanceof TextField) {
-                        ((TextField) event.getSource()).selectAll();
-                    }
-                    updateButtons();
-                    currentValue = getValue();
+                editor.commit(StyleClassItem.this);
+                if ((event != null) && event.getSource() instanceof TextField) {
+                    ((TextField) event.getSource()).selectAll();
                 }
+                updateButtons();
+                currentValue = getValue();
             };
 
-            ChangeListener<String> textPropertyChange = new ChangeListener<String>() {
-
-                @Override
-                public void changed(ObservableValue<? extends String> ov, String prevText, String newText) {
-                    if (prevText.isEmpty() || newText.isEmpty()) {
-                        // Text changed FROM empty value, or TO empty value: buttons status change
-                        updateButtons();
-                    }
+            ChangeListener<String> textPropertyChange = (ov, prevText, newText) -> {
+                if (prevText.isEmpty() || newText.isEmpty()) {
+                    // Text changed FROM empty value, or TO empty value: buttons status change
+                    updateButtons();
                 }
             };
             styleClassTf.textProperty().addListener(textPropertyChange);
             updateButtons();
 
             setTextEditorBehavior(styleClassTf, onActionListener, false);
-            ChangeListener<Boolean> focusListener = new ChangeListener<Boolean>() {
-                @Override
-                public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
-                    if (!newValue) {
-                        // focus lost: commit
-                        editor.editing(false, onActionListener);
-                    } else {
-                        // got focus
-                        editor.editing(true, onActionListener);
-                    }
+            ChangeListener<Boolean> focusListener = (observable, oldValue, newValue) -> {
+                if (!newValue) {
+                    // focus lost: commit
+                    editor.editing(false, onActionListener);
+                } else {
+                    // got focus
+                    editor.editing(true, onActionListener);
                 }
             };
             styleClassTf.focusedProperty().addListener(focusListener);
@@ -308,13 +291,9 @@
                 // css classes menu items
                 MenuItem menuItem = new MenuItem(className);
                 menuItem.setMnemonicParsing(false);
-                menuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-                    @Override
-                    public void handle(ActionEvent t) {
-                        styleClassTf.setText(className);
-                        StyleClassItem.this.getCommitListener().handle(null);
-                    }
+                menuItem.setOnAction(t -> {
+                    styleClassTf.setText(className);
+                    StyleClassItem.this.getCommitListener().handle(null);
                 });
                 actionMb.getItems().add(menuItem);
             }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StyleEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -46,7 +46,6 @@
 import java.util.Set;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.collections.ListChangeListener;
 import javafx.collections.ObservableList;
@@ -252,38 +251,31 @@
             propertySp.getChildren().add(super.getRoot());
 
             propertyTf = super.getTextField();
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
+            EventHandler<ActionEvent> onActionListener = event -> {
 //                    System.out.println("StyleItem : onActionListener");
-                    if (getValue().equals(currentValue)) {
-                        // no change
-                        return;
+                if (getValue().equals(currentValue)) {
+                    // no change
+                    return;
+                }
+                if (!propertyTf.getText().isEmpty() && !valueTf.getText().isEmpty()) {
+//                        System.out.println("StyleEditorItem : COMMIT");
+                    editor.commit(StyleItem.this);
+                    if (event != null && event.getSource() instanceof TextField) {
+                        ((TextField) event.getSource()).selectAll();
                     }
-                    if (!propertyTf.getText().isEmpty() && !valueTf.getText().isEmpty()) {
-//                        System.out.println("StyleEditorItem : COMMIT");
-                        editor.commit(StyleItem.this);
-                        if (event != null && event.getSource() instanceof TextField) {
-                            ((TextField) event.getSource()).selectAll();
-                        }
-                    }
-                    if (propertyTf.getText().isEmpty() && valueTf.getText().isEmpty()) {
-                        remove(null);
-                    }
+                }
+                if (propertyTf.getText().isEmpty() && valueTf.getText().isEmpty()) {
+                    remove(null);
+                }
 
-                    updateButtons();
-                    currentValue = getValue();
-                }
+                updateButtons();
+                currentValue = getValue();
             };
 
-            ChangeListener<String> textPropertyChange = new ChangeListener<String>() {
-
-                @Override
-                public void changed(ObservableValue<? extends String> ov, String prevText, String newText) {
-                    if (prevText.isEmpty() || newText.isEmpty()) {
-                        // Text changed FROM empty value, or TO empty value: buttons status change
-                        updateButtons();
-                    }
+            ChangeListener<String> textPropertyChange = (ov, prevText, newText) -> {
+                if (prevText.isEmpty() || newText.isEmpty()) {
+                    // Text changed FROM empty value, or TO empty value: buttons status change
+                    updateButtons();
                 }
             };
 
@@ -295,16 +287,13 @@
             // but implement a specific one.
             setTextEditorBehavior(propertyTf, onActionListener, false);
             setTextEditorBehavior(valueTf, onActionListener, false);
-            ChangeListener<Boolean> focusListener = new ChangeListener<Boolean>() {
-                @Override
-                public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
-                    if (!newValue) {
-                        // focus lost: commit
-                        editor.editing(false, onActionListener);
-                    } else {
-                        // got focus
-                        editor.editing(true, onActionListener);
-                    }
+            ChangeListener<Boolean> focusListener = (observable, oldValue, newValue) -> {
+                if (!newValue) {
+                    // focus lost: commit
+                    editor.editing(false, onActionListener);
+                } else {
+                    // got focus
+                    editor.editing(true, onActionListener);
                 }
             };
             propertyTf.focusedProperty().addListener(focusListener);
@@ -315,17 +304,13 @@
             moveUpMi.setText(I18N.getString("inspector.list.moveup"));
             moveDownMi.setText(I18N.getString("inspector.list.movedown"));
 
-            errorListener = new ListChangeListener<CssError>() {
-
-                @Override
-                public void onChanged(ListChangeListener.Change<? extends CssError> change) {
-                    while (change.next()) {
-                        if (change.wasAdded()) {
-                            for (CssError error : change.getAddedSubList()) {
-                                if (error instanceof CssError.InlineStyleParsingError) {
-                                    parsingError = true;
-                                    break;
-                                }
+            errorListener = change -> {
+                while (change.next()) {
+                    if (change.wasAdded()) {
+                        for (CssError error : change.getAddedSubList()) {
+                            if (error instanceof CssError.InlineStyleParsingError) {
+                                parsingError = true;
+                                break;
                             }
                         }
                     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/StylesheetEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -51,7 +51,6 @@
 import java.util.Set;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
@@ -101,24 +100,9 @@
         // Set the initial value to empty list (instead of null)
         valueProperty().setValue(FXCollections.observableArrayList());
 
-        documentRelativeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(Type.DOCUMENT_RELATIVE_PATH);
-            }
-        });
-        classPathRelativeMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(Type.CLASSLOADER_RELATIVE_PATH);
-            }
-        });
-        absoluteMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                switchType(Type.PLAIN_STRING);
-            }
-        });
+        documentRelativeMenuItem.setOnAction(e -> switchType(Type.DOCUMENT_RELATIVE_PATH));
+        classPathRelativeMenuItem.setOnAction(e -> switchType(Type.CLASSLOADER_RELATIVE_PATH));
+        absoluteMenuItem.setOnAction(e -> switchType(Type.PLAIN_STRING));
         getMenu().getItems().addAll(documentRelativeMenuItem, classPathRelativeMenuItem, absoluteMenuItem);
     }
 
@@ -435,37 +419,30 @@
         // Method to please FindBugs
         private void initialize(String url) {
             setValue(url);
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
+            EventHandler<ActionEvent> onActionListener = event -> {
 //                    System.out.println("StylesheetItem : onActionListener");
-                    if (getValue().equals(currentValue)) {
-                        // no change
-                        return;
-                    }
-                    if (stylesheetTf.getText().isEmpty()) {
-                        remove(null);
-                    }
+                if (getValue().equals(currentValue)) {
+                    // no change
+                    return;
+                }
+                if (stylesheetTf.getText().isEmpty()) {
+                    remove(null);
+                }
 //                        System.out.println("StyleEditorItem : COMMIT");
-                    editor.commit(StylesheetItem.this);
-                    if (event != null && event.getSource() instanceof TextField) {
-                        ((TextField) event.getSource()).selectAll();
-                    }
+                editor.commit(StylesheetItem.this);
+                if (event != null && event.getSource() instanceof TextField) {
+                    ((TextField) event.getSource()).selectAll();
+                }
+                updateButtons();
+                updateOpenRevealMenuItems();
+                currentValue = getValue();
+            };
+
+            ChangeListener<String> textPropertyChange = (ov, prevText, newText) -> {
+                if (prevText.isEmpty() || newText.isEmpty()) {
+                    // Text changed FROM empty value, or TO empty value: buttons status change
                     updateButtons();
                     updateOpenRevealMenuItems();
-                    currentValue = getValue();
-                }
-            };
-
-            ChangeListener<String> textPropertyChange = new ChangeListener<String>() {
-
-                @Override
-                public void changed(ObservableValue<? extends String> ov, String prevText, String newText) {
-                    if (prevText.isEmpty() || newText.isEmpty()) {
-                        // Text changed FROM empty value, or TO empty value: buttons status change
-                        updateButtons();
-                        updateOpenRevealMenuItems();
-                    }
                 }
             };
             stylesheetTf.textProperty().addListener(textPropertyChange);
@@ -523,13 +500,7 @@
         }
 
         protected void requestFocus() {
-            EditorUtils.doNextFrame(new Runnable() {
-
-                @Override
-                public void run() {
-                    stylesheetTf.requestFocus();
-                }
-            });
+            EditorUtils.doNextFrame(() -> stylesheetTf.requestFocus());
         }
 
         @Override
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/TextAlignmentEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -32,9 +32,9 @@
 package com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors;
 
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
+
 import java.util.Set;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
+
 import javafx.fxml.FXML;
 import javafx.scene.Node;
 import javafx.scene.Parent;
@@ -76,13 +76,7 @@
         toggleButtons[2] = rightTb;
         toggleButtons[3] = justifyTb;
         for (ToggleButton tb : toggleButtons) {
-            tb.setOnAction(new EventHandler<ActionEvent>() {
-
-                @Override
-                public void handle(ActionEvent t) {
-                    userUpdateValueProperty(getValue());
-                }
-            });
+            tb.setOnAction(t -> userUpdateValueProperty(getValue()));
             tb.disableProperty().bind(disableProperty());
         }
     }
@@ -147,12 +141,6 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                leftTb.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> leftTb.requestFocus());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ToggleGroupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/editors/ToggleGroupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -53,25 +53,22 @@
         this.suggestedTgs = suggestedTgs;
 
         // text field events handling
-        EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent event) {
-                if (isHandlingError()) {
-                    // Event received because of focus lost due to error dialog
+        EventHandler<ActionEvent> onActionListener = event -> {
+            if (isHandlingError()) {
+                // Event received because of focus lost due to error dialog
+                return;
+            }
+            String value = textField.getText();
+            if (value != null && !value.isEmpty()) {
+
+                if (!JavaLanguage.isIdentifier(value)) {
+//                        System.err.println(I18N.getString("inspector.fxml.invalid.id", value));
+                    handleInvalidValue(value);
                     return;
                 }
-                String value = textField.getText();
-                if (value != null && !value.isEmpty()) {
-
-                    if (!JavaLanguage.isIdentifier(value)) {
-//                        System.err.println(I18N.getString("inspector.fxml.invalid.id", value));
-                        handleInvalidValue(value);
-                        return;
-                    }
-                }
-                userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
-                textField.selectAll();
             }
+            userUpdateValueProperty((value == null || value.isEmpty()) ? null : value);
+            textField.selectAll();
         };
         setTextEditorBehavior(this, textField, onActionListener);
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/EffectPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/EffectPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -36,10 +36,11 @@
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPicker;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.Utils;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker;
+
 import java.util.List;
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.scene.Node;
 import javafx.scene.control.MenuItem;
 import javafx.scene.effect.Effect;
@@ -53,34 +54,28 @@
     private List<MenuItem> effectMenuItems;
     private final EditorController editorController;
 
-    private final ChangeListener<Number> effectRevisionChangeListener = new ChangeListener<Number>() {
-        @Override
-        public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
+    private final ChangeListener<Number> effectRevisionChangeListener = (ov, t, t1) -> {
+        final Effect rootEffect = effectPicker.getRootEffectProperty();
+        // Need to clone the root effect of the effect picker
+        // in order to commit with a new value
+        final Effect rootEffectClone = Utils.clone(rootEffect);
+        // If live update, do not commit the value
+        if (effectPicker.isLiveUpdate() == true) {
+            userUpdateTransientValueProperty(rootEffectClone);
+        } else {
+            commitValue(rootEffectClone);
+            updateMenuButton(rootEffectClone);
+        }
+    };
+
+    private final ChangeListener<Boolean> liveUpdateListener = (ov, oldValue, newValue) -> {
+        if (effectPicker.isLiveUpdate() == false) {
             final Effect rootEffect = effectPicker.getRootEffectProperty();
             // Need to clone the root effect of the effect picker
             // in order to commit with a new value
             final Effect rootEffectClone = Utils.clone(rootEffect);
-            // If live update, do not commit the value
-            if (effectPicker.isLiveUpdate() == true) {
-                userUpdateTransientValueProperty(rootEffectClone);
-            } else {
-                commitValue(rootEffectClone);
-                updateMenuButton(rootEffectClone);
-            }
-        }
-    };
-
-    private final ChangeListener<Boolean> liveUpdateListener = new ChangeListener<Boolean>() {
-        @Override
-        public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-            if (effectPicker.isLiveUpdate() == false) {
-                final Effect rootEffect = effectPicker.getRootEffectProperty();
-                // Need to clone the root effect of the effect picker
-                // in order to commit with a new value
-                final Effect rootEffectClone = Utils.clone(rootEffect);
-                commitValue(rootEffectClone);
-                updateMenuButton(rootEffectClone);
-            }
+            commitValue(rootEffectClone);
+            updateMenuButton(rootEffectClone);
         }
     };
 
@@ -107,18 +102,8 @@
 
     @Override
     public void initializePopupContent() {
-        final EffectPicker.Delegate epd = new EffectPicker.Delegate() {
-            @Override
-            public void handleError(String warningKey, Object... arguments) {
-                editorController.getMessageLog().logWarningMessage(warningKey, arguments);
-            }
-        };
-        final PaintPicker.Delegate ppd = new PaintPicker.Delegate() {
-            @Override
-            public void handleError(String warningKey, Object... arguments) {
-                editorController.getMessageLog().logWarningMessage(warningKey, arguments);
-            }
-        };
+        final EffectPicker.Delegate epd = (warningKey, arguments) -> editorController.getMessageLog().logWarningMessage(warningKey, arguments);
+        final PaintPicker.Delegate ppd = (warningKey, arguments) -> editorController.getMessageLog().logWarningMessage(warningKey, arguments);
         effectPicker = new EffectPicker(epd, ppd);
         effectMenuItems = effectPicker.getMenuItems();
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/FontPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/FontPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -52,7 +52,6 @@
 import java.util.TreeSet;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -141,46 +140,32 @@
         commitOnFocusLost(sizeEditor);
         sizeSp.getChildren().add(sizeEditor.getValueEditor());
 
-        familyEditor.valueProperty().addListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldVal, Object newVal) {
-                if (familyEditor.isUpdateFromModel()) {
-                    // nothing to do
-                    return;
-                }
-                commit();
-                setStyle();
+        familyEditor.valueProperty().addListener((ChangeListener<Object>) (ov, oldVal, newVal) -> {
+            if (familyEditor.isUpdateFromModel()) {
+                // nothing to do
+                return;
             }
+            commit();
+            setStyle();
         });
 
-        styleEditor.valueProperty().addListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldVal, Object newVal) {
-                if (styleEditor.isUpdateFromModel()) {
-                    // nothing to do
-                    return;
-                }
-                commit();
+        styleEditor.valueProperty().addListener((ChangeListener<Object>) (ov, oldVal, newVal) -> {
+            if (styleEditor.isUpdateFromModel()) {
+                // nothing to do
+                return;
             }
+            commit();
         });
 
-        sizeEditor.valueProperty().addListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldVal, Object newVal) {
-                if (sizeEditor.isUpdateFromModel()) {
-                    // nothing to do
-                    return;
-                }
-                commit();
+        sizeEditor.valueProperty().addListener((ChangeListener<Object>) (ov, oldVal, newVal) -> {
+            if (sizeEditor.isUpdateFromModel()) {
+                // nothing to do
+                return;
             }
+            commit();
         });
 
-        sizeEditor.transientValueProperty().addListener(new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object oldVal, Object newVal) {
-                transientValue(getFont());
-            }
-        });
+        sizeEditor.transientValueProperty().addListener((ChangeListener<Object>) (ov, oldVal, newVal) -> transientValue(getFont()));
     }
 
     @Override
@@ -225,22 +210,19 @@
         public FamilyEditor(String name, String defaultValue, List<String> families, EditorController editorController) {
             super(name, defaultValue, families);
             this.families = families;
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    if (Objects.equals(family, getTextField().getText())) {
-                        // no change
-                        return;
-                    }
-                    family = getTextField().getText();
-                    if (family.isEmpty() || !FamilyEditor.this.families.contains(family)) {
-                        editorController.getMessageLog().logWarningMessage(
-                                "inspector.font.invalidfamily", family); //NOI18N
-                        return;
-                    }
+            EventHandler<ActionEvent> onActionListener = event -> {
+                if (Objects.equals(family, getTextField().getText())) {
+                    // no change
+                    return;
+                }
+                family = getTextField().getText();
+                if (family.isEmpty() || !FamilyEditor.this.families.contains(family)) {
+                    editorController.getMessageLog().logWarningMessage(
+                            "inspector.font.invalidfamily", family); //NOI18N
+                    return;
+                }
 //                    System.out.println("Setting family from '" + valueProperty().get() + "' to '" + value + "'");
-                    valueProperty().setValue(family);
-                }
+                valueProperty().setValue(family);
             };
 
             setTextEditorBehavior(this, getTextField(), onActionListener);
@@ -265,21 +247,18 @@
         @SuppressWarnings("LeakingThisInConstructor")
         public StyleEditor(String name, String defaultValue, List<String> suggestedList, EditorController editorController) {
             super(name, defaultValue, suggestedList);
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    if (Objects.equals(style, getTextField().getText())) {
-                        // no change
-                        return;
-                    }
-                    style = getTextField().getText();
-                    if (style.isEmpty() || !getSuggestedList().contains(style)) {
-                        editorController.getMessageLog().logWarningMessage(
-                                "inspector.font.invalidstyle", style); //NOI18N
-                        return;
-                    }
-                    valueProperty().setValue(style);
+            EventHandler<ActionEvent> onActionListener = event -> {
+                if (Objects.equals(style, getTextField().getText())) {
+                    // no change
+                    return;
                 }
+                style = getTextField().getText();
+                if (style.isEmpty() || !getSuggestedList().contains(style)) {
+                    editorController.getMessageLog().logWarningMessage(
+                            "inspector.font.invalidstyle", style); //NOI18N
+                    return;
+                }
+                valueProperty().setValue(style);
             };
 
             setTextEditorBehavior(this, getTextField(), onActionListener);
@@ -293,12 +272,9 @@
     }
 
     private static void commitOnFocusLost(AutoSuggestEditor autoSuggestEditor) {
-        autoSuggestEditor.getTextField().focusedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldVal, Boolean newVal) {
-                if (!newVal) {
-                    autoSuggestEditor.getCommitListener().handle(null);
-                }
+        autoSuggestEditor.getTextField().focusedProperty().addListener((ChangeListener<Boolean>) (ov, oldVal, newVal) -> {
+            if (!newVal) {
+                autoSuggestEditor.getCommitListener().handle(null);
             }
         });
     }
@@ -315,16 +291,13 @@
     private static volatile Map<String, String> pathologicalFonts = null;
 
     private static final Comparator<Font> fontComparator
-            = new Comparator<Font>() {
-                @Override
-                public int compare(Font t, Font t1) {
-                    int cmp = t.getName().compareTo(t1.getName());
-                    if (cmp != 0) {
-                        return cmp;
-                    }
-                    return t.toString().compareTo(t1.toString());
-                }
-            };
+            = (t, t1) -> {
+        int cmp = t.getName().compareTo(t1.getName());
+        if (cmp != 0) {
+            return cmp;
+        }
+        return t.toString().compareTo(t1.toString());
+    };
 
     public static Set<Font> getAllFonts() {
         Font f = Font.getDefault();
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/KeyCombinationPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -48,7 +48,6 @@
 import java.util.Set;
 
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -61,6 +60,7 @@
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyCodeCombination;
 import javafx.scene.input.KeyCombination;
+import javafx.scene.input.KeyCombination.Modifier;
 import javafx.scene.layout.GridPane;
 import javafx.scene.layout.StackPane;
 import javafx.util.StringConverter;
@@ -120,14 +120,10 @@
         mainKeySp.getChildren().add(mainKey.getNode());
 
         clearAllBt.setText(I18N.getString("inspector.keycombination.clear"));
-        clearAllBt.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                resetState();
-                buildUI();
-                commit(null);
-            }
+        clearAllBt.setOnAction(t -> {
+            resetState();
+            buildUI();
+            commit(null);
         });
 
         buildUI();
@@ -337,19 +333,15 @@
             modifierChoiceBox.getSelectionModel().select(modifier);
         }
 
-        modifierChoiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<KeyCombination.Modifier>() {
-            @Override
-            public void changed(ObservableValue<? extends KeyCombination.Modifier> observable,
-                    KeyCombination.Modifier oldValue, KeyCombination.Modifier newValue) {
-                if (!mainKey.isEmpty()) {
-                    KeyCombination kc = createKeyCombination();
-                    if (kc != null) {
-                        commit(kc);
-                    }
-                }
-                buildUI();
+        modifierChoiceBox.getSelectionModel().selectedItemProperty().addListener((ChangeListener<Modifier>) (observable, oldValue, newValue) -> {
+            if (!mainKey.isEmpty()) {
+        KeyCombination kc = createKeyCombination();
+        if (kc != null) {
+            commit(kc);
+        }
             }
-        });
+            buildUI();
+         });
         return modifierChoiceBox;
     }
 
@@ -423,20 +415,16 @@
         public MainKey(List<String> suggestedKeys, EditorController editorController) {
             super("", null, suggestedKeys); //NOI18N
             this.editorController = editorController;
-            EventHandler<ActionEvent> onActionListener = new EventHandler<ActionEvent>() {
-
-                @Override
-                public void handle(ActionEvent t) {
-                    if (Objects.equals(mainKey, getTextField().getText())) {
-                        // no change
-                        return;
-                    }
-                    mainKey = getTextField().getText();
-                    if (!mainKey.isEmpty()) {
-                        KeyCombination kc = createKeyCombination();
-                        if (kc != null) {
-                            commit(kc);
-                        }
+            EventHandler<ActionEvent> onActionListener = t -> {
+                if (Objects.equals(mainKey, getTextField().getText())) {
+                    // no change
+                    return;
+                }
+                mainKey = getTextField().getText();
+                if (!mainKey.isEmpty()) {
+                    KeyCombination kc = createKeyCombination();
+                    if (kc != null) {
+                        commit(kc);
                     }
                 }
             };
@@ -477,13 +465,10 @@
     }
 
     private static void commitOnFocusLost(AutoSuggestEditor autoSuggestEditor) {
-        autoSuggestEditor.getTextField().focusedProperty().addListener(new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldVal, Boolean newVal) {
-                if (!newVal) {
-                    // Focus lost
-                    autoSuggestEditor.getCommitListener().handle(null);
-                }
+        autoSuggestEditor.getTextField().focusedProperty().addListener((ChangeListener<Boolean>) (ov, oldVal, newVal) -> {
+            if (!newVal) {
+                // Focus lost
+                autoSuggestEditor.getCommitListener().handle(null);
             }
         });
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PaintPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -35,9 +35,10 @@
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.ColorEncoder;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker;
+
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.scene.Node;
 import javafx.scene.paint.Color;
 import javafx.scene.paint.ImagePattern;
@@ -55,26 +56,20 @@
     private final Rectangle graphic = new Rectangle(20, 10);
     private final EditorController editorController;
 
-    private final ChangeListener<Paint> paintChangeListener = new ChangeListener<Paint>() {
-        @Override
-        public void changed(ObservableValue<? extends Paint> ov, Paint oldValue, Paint newValue) {
-            // If live update, do not commit the value
-            if (paintPicker.isLiveUpdate() == true) {
-                userUpdateTransientValueProperty(newValue);
-                popupMb.setText(getPreviewString(newValue));
-            } else {
-                commitValue(newValue);
-            }
-            graphic.setFill(newValue);
+    private final ChangeListener<Paint> paintChangeListener = (ov, oldValue, newValue) -> {
+        // If live update, do not commit the value
+        if (paintPicker.isLiveUpdate() == true) {
+            userUpdateTransientValueProperty(newValue);
+            popupMb.setText(getPreviewString(newValue));
+        } else {
+            commitValue(newValue);
         }
+        graphic.setFill(newValue);
     };
 
-    private final ChangeListener<Boolean> liveUpdateListener = new ChangeListener<Boolean>() {
-        @Override
-        public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-            if (paintPicker.isLiveUpdate() == false) {
-                commitValue(paintPicker.getPaintProperty());
-            }
+    private final ChangeListener<Boolean> liveUpdateListener = (ov, oldValue, newValue) -> {
+        if (paintPicker.isLiveUpdate() == false) {
+            commitValue(paintPicker.getPaintProperty());
         }
     };
 
@@ -90,12 +85,7 @@
     //
     @Override
     public void initializePopupContent() {
-        final PaintPicker.Delegate delegate = new PaintPicker.Delegate() {
-            @Override
-            public void handleError(String warningKey, Object... arguments) {
-                editorController.getMessageLog().logWarningMessage(warningKey, arguments);
-            }
-        };
+        final PaintPicker.Delegate delegate = (warningKey, arguments) -> editorController.getMessageLog().logWarningMessage(warningKey, arguments);
         paintPicker = new PaintPicker(delegate);
     }
 
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/PopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -34,9 +34,10 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.EditorUtils;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.PropertyEditor;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
+
 import java.util.Set;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.scene.Node;
 import javafx.scene.control.CustomMenuItem;
@@ -74,17 +75,13 @@
     private void initializeEditor() {
         // Lazy initialization of the editor,
         // the first time the popup is opened.
-        popupMb.showingProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean previousVal, Boolean newVal) {
-                if (newVal) {
-                    if (!initialized) {
-                        initializePopup();
-                        initialized = true;
-                    }
-                    setPopupContentValue(value);
+        popupMb.showingProperty().addListener((ChangeListener<Boolean>) (ov, previousVal, newVal) -> {
+            if (newVal) {
+                if (!initialized) {
+                    initializePopup();
+                    initialized = true;
                 }
+                setPopupContentValue(value);
             }
         });
     }
@@ -143,13 +140,7 @@
 
     @Override
     public void requestFocus() {
-        EditorUtils.doNextFrame(new Runnable() {
-
-            @Override
-            public void run() {
-                popupMb.requestFocus();
-            }
-        });
+        EditorUtils.doNextFrame(() -> popupMb.requestFocus());
     }
 
     /*
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/Rectangle2DPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/Rectangle2DPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -101,12 +101,7 @@
         doubleFields[2] = widthDf;
         doubleFields[3] = heightDf;
         for (DoubleField doubleField : doubleFields) {
-            EventHandler<ActionEvent> valueListener = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent event) {
-                    commitValue(getValue());
-                }
-            };
+            EventHandler<ActionEvent> valueListener = event -> commitValue(getValue());
             setNumericEditorBehavior(this, doubleField, valueListener, false);
         }
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/popupeditors/StringPopupEditor.java	Thu May 22 19:22:01 2014 -0700
@@ -33,9 +33,9 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.EditorUtils;
 import com.oracle.javafx.scenebuilder.kit.metadata.property.ValuePropertyMetadata;
+
 import java.util.Set;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
+
 import javafx.fxml.FXML;
 import javafx.scene.Node;
 import javafx.scene.Parent;
@@ -65,13 +65,7 @@
     public void initializePopupContent() {
         root = EditorUtils.loadPopupFxml("StringPopupEditor.fxml", this);
         assert textField != null;
-        textField.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent t) {
-                commitValue(textField.getText());
-            }
-        });
+        textField.setOnAction(t -> commitValue(textField.getText()));
     }
 
     @Override
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/ImportWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -39,6 +39,7 @@
 import com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer;
 import com.oracle.javafx.scenebuilder.kit.library.util.JarReport;
 import com.oracle.javafx.scenebuilder.kit.library.util.JarReportEntry;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -52,15 +53,13 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
-import javafx.beans.property.BooleanProperty;
 import java.util.stream.Stream;
+
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.concurrent.Task;
-import javafx.concurrent.WorkerStateEvent;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.geometry.Bounds;
 import javafx.scene.Group;
@@ -191,14 +190,7 @@
     @Override
     protected void cancelButtonPressed(ActionEvent e) {
         if (exploringTask != null && exploringTask.isRunning()) {
-            exploringTask.setOnCancelled(new EventHandler<WorkerStateEvent>() {
-
-                @Override
-                public void handle(WorkerStateEvent t) {
-//                    System.out.println("Exploration of jar files has been cancelled"); //NOI18N
-                    getStage().close();
-                }
-            });
+            exploringTask.setOnCancelled(t -> getStage().close());
             exploringTask.cancel(true);
         } else {
             getStage().close();
@@ -271,32 +263,24 @@
         defSizeChoice.getItems().addAll(I18N.getString("import.choice.builtin"),
                 "200 x 100", "200 x 200"); //NOI18N
         defSizeChoice.getSelectionModel().selectFirst();
-        defSizeChoice.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                assert t1 instanceof Integer;
-                updateSize((Integer)t1);
-            }
+        defSizeChoice.getSelectionModel().selectedIndexProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> {
+            assert t1 instanceof Integer;
+            updateSize((Integer)t1);
         });
 
         // Setup Select All / Unselect All toggle
         // Initially all items are Selected.
-        checkAllUncheckAllToggle.selectedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                if (t1) {
-                    for (ImportRow row : importList.getItems()) {
-                        row.setImportRequired(false);
-                    }
-                    checkAllUncheckAllToggle.setText(I18N.getString("import.toggle.checkall"));
-                } else {
-                    for (ImportRow row : importList.getItems()) {
-                        row.setImportRequired(true);
-                    }
-                    checkAllUncheckAllToggle.setText(I18N.getString("import.toggle.uncheckall"));
+        checkAllUncheckAllToggle.selectedProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> {
+            if (t1) {
+                for (ImportRow row1 : importList.getItems()) {
+                    row1.setImportRequired(false);
                 }
+                checkAllUncheckAllToggle.setText(I18N.getString("import.toggle.checkall"));
+            } else {
+                for (ImportRow row2 : importList.getItems()) {
+                    row2.setImportRequired(true);
+                }
+                checkAllUncheckAllToggle.setText(I18N.getString("import.toggle.uncheckall"));
             }
         });
                 
@@ -387,89 +371,73 @@
 
         // We typically enter this handler when dropping jar files such as
         // rt.jar from Java Runtime.
-        exploringTask.setOnFailed(new EventHandler<WorkerStateEvent>() {
-
-            @Override
-            public void handle(WorkerStateEvent t) {
-                // See in setOnSucceeded the explanation for the toFront below.
-                getStage().toFront();
-                updateNumOfItemsLabelAndSelectionToggleState();
-            }
+        exploringTask.setOnFailed(t -> {
+            // See in setOnSucceeded the explanation for the toFront below.
+            getStage().toFront();
+            updateNumOfItemsLabelAndSelectionToggleState();
         });
         
         // We construct the import list only if exploration of jar files does well.
         // If Cancel is called during the construction of the list then the import
         // window is closed but the construction itself will continue up to the
         // end. Do we want to make it interruptible ?
-        exploringTask.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
+        exploringTask.setOnSucceeded(t -> {
+            assert Platform.isFxApplicationThread();
+            // This toFront() might not be necessary because import window is modal
+            // and is chained to the document window. Anyway experience showed
+            // we need it (FX 8 b106). This is suspicious, to be investigated ...
+            // But more tricky is why toFront() is called here. Mind that when toFront()
+            // is called while isShowing() returns false isn't effective: that's
+            // why toFront called at the end of controllerDidCreateStage() or
+            // controllerDidLoadContentFxml() wasn't an option. Below is the
+            // earliest place it has been proven effective, at least on my machine.
+            getStage().toFront();
+            
+            try {
+                // We get the set of items which are already excluded prior to the current import.
+                UserLibrary userLib = ((UserLibrary) libPanelController.getEditorController().getLibrary());
+                alreadyExcludedItems = userLib.getFilter();
+                
+                List<JarReport> jarReportList = exploringTask.get(); // blocking call
+                final Callback<ImportRow, ObservableValue<Boolean>> importRequired
+                        = row -> row.importRequired();
+                importList.setCellFactory(CheckBoxListCell.forListView(importRequired));
 
-            @Override
-            public void handle(WorkerStateEvent t) {
-                assert Platform.isFxApplicationThread();
-                // This toFront() might not be necessary because import window is modal
-                // and is chained to the document window. Anyway experience showed
-                // we need it (FX 8 b106). This is suspicious, to be investigated ...
-                // But more tricky is why toFront() is called here. Mind that when toFront()
-                // is called while isShowing() returns false isn't effective: that's
-                // why toFront called at the end of controllerDidCreateStage() or
-                // controllerDidLoadContentFxml() wasn't an option. Below is the
-                // earliest place it has been proven effective, at least on my machine.
-                getStage().toFront();
-                
-                try {
-                    // We get the set of items which are already excluded prior to the current import.
-                    UserLibrary userLib = ((UserLibrary) libPanelController.getEditorController().getLibrary());
-                    alreadyExcludedItems = userLib.getFilter();
-                    
-                    List<JarReport> jarReportList = exploringTask.get(); // blocking call
-                    final Callback<ImportRow, ObservableValue<Boolean>> importRequired
-                            = new Callback<ImportRow, ObservableValue<Boolean>>() {
-                                @Override
-                                public BooleanProperty call(ImportRow row) {
-                                    return row.importRequired();
-                                }
-                            };
-                    importList.setCellFactory(CheckBoxListCell.forListView(importRequired));
-
-                    for (JarReport jarReport : jarReportList) {
-                        for (JarReportEntry e : jarReport.getEntries()) {
-                            if ((e.getStatus() == JarReportEntry.Status.OK) && e.isNode()) {
-                                boolean checked = true;
-                                // If the class we import is already listed as an excluded one
-                                // then it must appear unchecked in the list.
-                                if (alreadyExcludedItems.contains(e.getKlass().getCanonicalName())) {
-                                    checked = false;
-                                    alreadyExcludedItems.remove(e.getKlass().getCanonicalName());
-                                }
-                                final ImportRow importRow = new ImportRow(checked, e, null);
-                                importList.getItems().add(importRow);
-                                importRow.importRequired().addListener(new ChangeListener<Boolean>() {
-
-                                    @Override
-                                    public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
+                for (JarReport jarReport : jarReportList) {
+                    for (JarReportEntry e : jarReport.getEntries()) {
+                        if ((e.getStatus() == JarReportEntry.Status.OK) && e.isNode()) {
+                            boolean checked = true;
+                            // If the class we import is already listed as an excluded one
+                            // then it must appear unchecked in the list.
+                            if (alreadyExcludedItems.contains(e.getKlass().getCanonicalName())) {
+                                checked = false;
+                                alreadyExcludedItems.remove(e.getKlass().getCanonicalName());
+                            }
+                            final ImportRow importRow = new ImportRow(checked, e, null);
+                            importList.getItems().add(importRow);
+                            importRow.importRequired().addListener((ChangeListener<Boolean>) (ov, oldValue,
+                                    newValue) -> {
                                         final int numOfComponentToImport = getNumOfComponentToImport(importList);
                                         updateOKButtonTitle(numOfComponentToImport);
                                         updateSelectionToggleText(numOfComponentToImport);
-                                    }
-                                });
-                            }
+                                    });
                         }
                     }
-                    
-                    // Sort based on the simple class name.
-                    Collections.sort(importList.getItems(), new ImportRowComparator());
+                }
+                
+                // Sort based on the simple class name.
+                Collections.sort(importList.getItems(), new ImportRowComparator());
 
-                    final int numOfComponentToImport = getNumOfComponentToImport(importList);
-                    updateOKButtonTitle(numOfComponentToImport);
-                    updateSelectionToggleText(numOfComponentToImport);
-                    updateNumOfItemsLabelAndSelectionToggleState();
-                } catch (InterruptedException | ExecutionException | IOException ex) {
-                    getStage().close();
-                    showErrorDialog(ex);
-                }
+                final int numOfComponentToImport = getNumOfComponentToImport(importList);
+                updateOKButtonTitle(numOfComponentToImport);
+                updateSelectionToggleText(numOfComponentToImport);
+                updateNumOfItemsLabelAndSelectionToggleState();
+            } catch (InterruptedException | ExecutionException | IOException ex) {
+                getStage().close();
+                showErrorDialog(ex);
+            }
 
-                unsetProcessing();
-            }
+            unsetProcessing();
         });
 
         th.start();
@@ -493,54 +461,50 @@
         processingLabel.setVisible(false);
         topSplitPane.setVisible(true);
 
-        importList.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<ImportRow>() {
-
-            @Override
-            public void changed(ObservableValue<? extends ImportRow> ov, ImportRow t, ImportRow t1) {
-                previewGroup.getChildren().clear();
-                final String fxmlText = JarExplorer.makeFxmlText(t1.getJarReportEntry().getKlass());
-                try {
-                    FXOMDocument fxomDoc = new FXOMDocument(fxmlText, null, importClassLoader, null);
-                    zeNode = (Node) fxomDoc.getSceneGraphRoot();
-                } catch (IOException ioe) {
-                    showErrorDialog(ioe);
-                }
-                
-                // In order to get valid bounds I need to put the node into a
-                // scene and ask for full layout.
-                try {
-                    final Group visualGroup = new Group(zeNode);
-                    final Scene hiddenScene = new Scene(visualGroup);
-                    Stage hiddenStage = new Stage();
-                    hiddenStage.setScene(hiddenScene);
-                    visualGroup.applyCss();
-                    visualGroup.layout();
-                    final Bounds zeBounds = zeNode.getLayoutBounds();
-                    builtinPrefWidth = zeBounds.getWidth();
-                    builtinPrefHeight = zeBounds.getHeight();
-                    // Detach the scene !
-                    hiddenScene.setRoot(new Group());
-                    hiddenStage.close();
-                } catch (Error e) {
-                    // Experience shows that with rogue jar files (a jar file
-                    // unlikely to contain FX controls) we can enter here.
-                    // Anything better to do than setting pref size to 0 ?
-                    builtinPrefWidth = 0;
-                    builtinPrefHeight = 0;
-                }
-                
-                if (builtinPrefWidth == 0 || builtinPrefHeight == 0) {
-                    ((Region) zeNode).setPrefSize(200, 200);
-                    setSizeLabel(PrefSize.TWO_HUNDRED_BY_TWO_HUNDRED);
-                    defSizeChoice.getSelectionModel().select(2);
-                } else {
-                    setSizeLabel(PrefSize.DEFAULT);
-                    defSizeChoice.getSelectionModel().selectFirst();
-                }
-                previewGroup.getChildren().add(zeNode);
-                defSizeChoice.setDisable(false);
-                classNameLabel.setText(t1.getJarReportEntry().getKlass().getName());
+        importList.getSelectionModel().selectedItemProperty().addListener((ChangeListener<ImportRow>) (ov, t, t1) -> {
+            previewGroup.getChildren().clear();
+            final String fxmlText = JarExplorer.makeFxmlText(t1.getJarReportEntry().getKlass());
+            try {
+                FXOMDocument fxomDoc = new FXOMDocument(fxmlText, null, importClassLoader, null);
+                zeNode = (Node) fxomDoc.getSceneGraphRoot();
+            } catch (IOException ioe) {
+                showErrorDialog(ioe);
             }
+            
+            // In order to get valid bounds I need to put the node into a
+            // scene and ask for full layout.
+            try {
+                final Group visualGroup = new Group(zeNode);
+                final Scene hiddenScene = new Scene(visualGroup);
+                Stage hiddenStage = new Stage();
+                hiddenStage.setScene(hiddenScene);
+                visualGroup.applyCss();
+                visualGroup.layout();
+                final Bounds zeBounds = zeNode.getLayoutBounds();
+                builtinPrefWidth = zeBounds.getWidth();
+                builtinPrefHeight = zeBounds.getHeight();
+                // Detach the scene !
+                hiddenScene.setRoot(new Group());
+                hiddenStage.close();
+            } catch (Error e) {
+                // Experience shows that with rogue jar files (a jar file
+                // unlikely to contain FX controls) we can enter here.
+                // Anything better to do than setting pref size to 0 ?
+                builtinPrefWidth = 0;
+                builtinPrefHeight = 0;
+            }
+            
+            if (builtinPrefWidth == 0 || builtinPrefHeight == 0) {
+                ((Region) zeNode).setPrefSize(200, 200);
+                setSizeLabel(PrefSize.TWO_HUNDRED_BY_TWO_HUNDRED);
+                defSizeChoice.getSelectionModel().select(2);
+            } else {
+                setSizeLabel(PrefSize.DEFAULT);
+                defSizeChoice.getSelectionModel().selectFirst();
+            }
+            previewGroup.getChildren().add(zeNode);
+            defSizeChoice.setDisable(false);
+            classNameLabel.setText(t1.getJarReportEntry().getKlass().getName());
         });
 
         // We avoid to get an empty Preview area at first.
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListCell.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryListCell.java	Thu May 22 19:22:01 2014 -0700
@@ -88,39 +88,30 @@
         HBox.setHgrow(sectionLabel, Priority.ALWAYS);
         sectionLabel.setMaxWidth(Double.MAX_VALUE);
         
-        final EventHandler<MouseEvent> mouseEventHandler = new EventHandler<MouseEvent>() {
-            @Override
-            public void handle(final MouseEvent e) {
-                handleMouseEvent(e);
-            }
-        };
+        final EventHandler<MouseEvent> mouseEventHandler = e -> handleMouseEvent(e);
         // Mouse events
         this.addEventHandler(MouseEvent.ANY, mouseEventHandler);
         
-        setOnDragDetected(new EventHandler<MouseEvent>() {
+        setOnDragDetected(t -> {
+//                System.out.println("LibraryListCell - setOnDragDetected.handle");
+            final LibraryListItem listItem = LibraryListCell.this.getItem();
+            final FXOMDocument fxomDocument = editorController.getFxomDocument();
+            
+            if ((listItem != null) && (fxomDocument != null)) {
+                final LibraryItem item = LibraryListCell.this.getItem().getLibItem();
+                if (item != null) {
+                    final ListView<LibraryListItem> list = LibraryListCell.this.getListView();
+                    final Dragboard db = list.startDragAndDrop(TransferMode.COPY);
 
-            @Override
-            public void handle(MouseEvent t) {
-//                System.out.println("LibraryListCell - setOnDragDetected.handle");
-                final LibraryListItem listItem = LibraryListCell.this.getItem();
-                final FXOMDocument fxomDocument = editorController.getFxomDocument();
-                
-                if ((listItem != null) && (fxomDocument != null)) {
-                    final LibraryItem item = LibraryListCell.this.getItem().getLibItem();
-                    if (item != null) {
-                        final ListView<LibraryListItem> list = LibraryListCell.this.getListView();
-                        final Dragboard db = list.startDragAndDrop(TransferMode.COPY);
+                    final Window ownerWindow = getScene().getWindow();
+                    final LibraryDragSource dragSource 
+                            = new LibraryDragSource(item, fxomDocument, ownerWindow);
+                    assert editorController.getDragController().getDragSource() == null;
+                    assert dragSource.isAcceptable();
+                    editorController.getDragController().begin(dragSource);
 
-                        final Window ownerWindow = getScene().getWindow();
-                        final LibraryDragSource dragSource 
-                                = new LibraryDragSource(item, fxomDocument, ownerWindow);
-                        assert editorController.getDragController().getDragSource() == null;
-                        assert dragSource.isAcceptable();
-                        editorController.getDragController().begin(dragSource);
-
-                        db.setContent(dragSource.makeClipboardContent());
-                        db.setDragView(dragSource.makeDragView());
-                    }
+                    db.setContent(dragSource.makeClipboardContent());
+                    db.setDragView(dragSource.makeDragView());
                 }
             }
         });
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -52,6 +52,7 @@
 import com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PrefixedValue;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PropertyName;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -72,9 +73,9 @@
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.TreeSet;
+
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ListChangeListener;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
@@ -83,7 +84,6 @@
 import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.scene.control.TitledPane;
-import javafx.scene.input.DragEvent;
 import javafx.scene.input.Dragboard;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
@@ -323,40 +323,29 @@
         return currentDisplayMode;
     }
     
-    private final ChangeListener<Library> libraryListener = new ChangeListener<Library>() {
-
-        @Override
-        public void changed(ObservableValue<? extends Library> ov, Library t, Library t1) {
-            // When a jar is imported this listener is called two times.
-            // First the UserLibrary is turned into BuiltinLibrary, then it is
-            // turned back into a UserLibrary with the up to date library dir
-            // content.
+    final ListChangeListener<LibraryItem> libraryItemListener = change -> libraryDidChange(null);
+    
+    private final ChangeListener<Library> libraryListener = (ov, t, t1) -> {
+        // When a jar is imported this listener is called two times.
+        // First the UserLibrary is turned into BuiltinLibrary, then it is
+        // turned back into a UserLibrary with the up to date library dir
+        // content.
 //            System.out.println("libraryListener called - t " + t + " - t1 " + t1);
-            if (t instanceof UserLibrary) {
-                t.getItems().removeListener(libraryItemListener);
-                t.getItems().clear();
+        if (t instanceof UserLibrary) {
+            t.getItems().removeListener(libraryItemListener);
+            t.getItems().clear();
+        }
+        if (t1 instanceof UserLibrary) {
+            t1.getItems().addListener(libraryItemListener);
+            if (sectionNameToKeepOpened != null) {
+                sectionNameToKeepOpened = null;
             }
-            if (t1 instanceof UserLibrary) {
-                t1.getItems().addListener(libraryItemListener);
-                if (sectionNameToKeepOpened != null) {
-                    sectionNameToKeepOpened = null;
-                }
-            }
-            // libraryDidChange might not be called by several listeners.
-            // Silencing the one below means I dunno how to get the selected index.
+        }
+        // libraryDidChange might not be called by several listeners.
+        // Silencing the one below means I dunno how to get the selected index.
 //            libraryDidChange(t);
-        }
     };
     
-    final ListChangeListener<LibraryItem> libraryItemListener = new ListChangeListener<LibraryItem>() {
-
-            @Override
-            public void onChanged(ListChangeListener.Change<? extends LibraryItem> change) {
-//                System.out.println("libraryItemListener called");
-                libraryDidChange(null);
-            }
-        };
-    
     private void startListeningToLibrary() {
         getEditorController().libraryProperty().addListener(libraryListener);
     }
@@ -530,21 +519,10 @@
     // Key events listened onto the ListView
     // For some reason the listener when set on the cell (see LibraryListCell)
     // is never called, probably because it is the ListView which has the focus.
-    private final EventHandler<KeyEvent> keyEventHandler = new EventHandler<KeyEvent>() {
-        @Override
-        public void handle(final KeyEvent e) {
-            handleKeyEvent(e);
-        }
-    };
+    private final EventHandler<KeyEvent> keyEventHandler = e -> handleKeyEvent(e);
     
     private final Callback<ListView<LibraryListItem>, ListCell<LibraryListItem>> cb
-            = new Callback<ListView<LibraryListItem>, ListCell<LibraryListItem>>() {
-    
-        @Override
-        public ListCell<LibraryListItem> call(ListView<LibraryListItem> param) {
-            return new LibraryListCell(getEditorController());
-        }
-    };
+            = param -> new LibraryListCell(getEditorController());
     
     private void handleKeyEvent(KeyEvent e) {
         // On ENTER we try to insert the item which is selected within the Library.
@@ -569,106 +547,84 @@
     }
     
     private void startListeningToDrop() {
-        libPane.setOnDragDropped(new EventHandler<DragEvent>() {
+        libPane.setOnDragDropped(t -> {
+//                System.out.println("libPane onDragDropped");
+            AbstractDragSource dragSource = getEditorController().getDragController().getDragSource();
+            if (dragSource instanceof DocumentDragSource) {
+                processInternalImport(((DocumentDragSource)dragSource).getDraggedObjects());
+            } else {
+                initiateImportDialog = false;
+                jarAndFxmlFiles.clear();
+                t.setDropCompleted(true);
+                // Drop gesture is only valid when the Library is an instance of UserLibrary
+                if (getEditorController().getLibrary() instanceof UserLibrary) {
+                    Dragboard db = t.getDragboard();
+                    if (db.hasFiles()) {
+                        final List<File> files = db.getFiles();
+                        for (File file : files) {
+                            // Keep only jar and fxml files
+                            if (file.isFile() && (file.getName().endsWith(".jar") || file.getName().endsWith(".fxml"))) { //NOI18N
+//                                System.out.println("libPane onDragDropped - Retaining file " + file.getName());
+                                jarAndFxmlFiles.add(file);
+                            }
+                        }
 
-            @Override
-            public void handle(DragEvent t) {
-//                System.out.println("libPane onDragDropped");
-                AbstractDragSource dragSource = getEditorController().getDragController().getDragSource();
-                if (dragSource instanceof DocumentDragSource) {
-                    processInternalImport(((DocumentDragSource)dragSource).getDraggedObjects());
-                } else {
-                    initiateImportDialog = false;
-                    jarAndFxmlFiles.clear();
-                    t.setDropCompleted(true);
-                    // Drop gesture is only valid when the Library is an instance of UserLibrary
-                    if (getEditorController().getLibrary() instanceof UserLibrary) {
-                        Dragboard db = t.getDragboard();
-                        if (db.hasFiles()) {
-                            final List<File> files = db.getFiles();
-                            for (File file : files) {
-                                // Keep only jar and fxml files
-                                if (file.isFile() && (file.getName().endsWith(".jar") || file.getName().endsWith(".fxml"))) { //NOI18N
-//                                System.out.println("libPane onDragDropped - Retaining file " + file.getName());
-                                    jarAndFxmlFiles.add(file);
-                                }
-                            }
-
-                            // The import dialog might be kept opened by the user quite
-                            // a long time.
-                            // On Mac (not on Win), after around 20 seconds of opening
-                            // time of the import dialog window the user sees a move from
-                            // the lib panel to the Finder of the file icon, as if the drag
-                            // is rejected.
-                            // In order to silence (mask ?) this issue there's:
-                            // - the delegation to setOnDragExited of the call of processImportJarFxml
-                            // so that current handler returns fast.
-                            // - the runLater in setOnDragExited, wrapped with a Timer set with a 1 second delay
-                            // Is there a way to be notified when the import dialog
-                            // can be run without interfering with the drag and drop sequence ?
-                            initiateImportDialog = true;
-                        }
+                        // The import dialog might be kept opened by the user quite
+                        // a long time.
+                        // On Mac (not on Win), after around 20 seconds of opening
+                        // time of the import dialog window the user sees a move from
+                        // the lib panel to the Finder of the file icon, as if the drag
+                        // is rejected.
+                        // In order to silence (mask ?) this issue there's:
+                        // - the delegation to setOnDragExited of the call of processImportJarFxml
+                        // so that current handler returns fast.
+                        // - the runLater in setOnDragExited, wrapped with a Timer set with a 1 second delay
+                        // Is there a way to be notified when the import dialog
+                        // can be run without interfering with the drag and drop sequence ?
+                        initiateImportDialog = true;
                     }
                 }
             }
         });
         
-        libPane.setOnDragExited(new EventHandler<DragEvent>() {
+        libPane.setOnDragExited(t -> {
+//                System.out.println("libPane onDragExited");
+            if (initiateImportDialog) {
+                initiateImportDialog = false;
+                final Timer timer = new Timer(true);
+                final TimerTask timerTask = new TimerTask() {
 
-            @Override
-            public void handle(DragEvent t) {
-//                System.out.println("libPane onDragExited");
-                if (initiateImportDialog) {
-                    initiateImportDialog = false;
-                    final Timer timer = new Timer(true);
-                    final TimerTask timerTask = new TimerTask() {
-
-                        @Override
-                        public void run() {
-                            Platform.runLater(new Runnable() {
-
-                                @Override
-                                public void run() {
-                                    processImportJarFxml(jarAndFxmlFiles);
-                                }
-                            });
-                            // I don't need to use the timer later on so by
-                            // cancelling it right here I'm sure free resources
-                            // that otherwise would prevent the JVM from exiting.
-                            timer.cancel();
-                        }
-                    };
-                    timer.schedule(timerTask, 600); // milliseconds
-                }
+                    @Override
+                    public void run() {
+                        Platform.runLater(() -> processImportJarFxml(jarAndFxmlFiles));
+                        // I don't need to use the timer later on so by
+                        // cancelling it right here I'm sure free resources
+                        // that otherwise would prevent the JVM from exiting.
+                        timer.cancel();
+                    }
+                };
+                timer.schedule(timerTask, 600); // milliseconds
             }
         });
         
         
-        libPane.setOnDragOver(new EventHandler<DragEvent>() {
-
-            @Override
-            public void handle(DragEvent t) {
+        libPane.setOnDragOver(t -> {
 //                System.out.println("libPane onDragOver");
-                AbstractDragSource dragSource = getEditorController().getDragController().getDragSource();
-                Dragboard db = t.getDragboard();
-                // db has file when dragging a file from native file manager (Mac Finder, Windows Explorer, ...).
-                // dragSource is not null if the user drags something from Hierarchy or Content panel.
-                if (db.hasFiles() || dragSource != null) {
-                    t.acceptTransferModes(TransferMode.COPY);
-                }
+            AbstractDragSource dragSource = getEditorController().getDragController().getDragSource();
+            Dragboard db = t.getDragboard();
+            // db has file when dragging a file from native file manager (Mac Finder, Windows Explorer, ...).
+            // dragSource is not null if the user drags something from Hierarchy or Content panel.
+            if (db.hasFiles() || dragSource != null) {
+                t.acceptTransferModes(TransferMode.COPY);
             }
         });
         
         // This one is called only if lib is the source of the drop.
-        libPane.setOnDragDone(new EventHandler<DragEvent>() {
-
-            @Override
-            public void handle(DragEvent t) {
-                assert getEditorController().getDragController().getDragSource() != null;
-                getEditorController().getDragController().end();
-                t.getDragboard().clear();
-                t.consume();
-            }
+        libPane.setOnDragDone(t -> {
+            assert getEditorController().getDragController().getDragSource() != null;
+            getEditorController().getDragController().end();
+            t.getDragboard().clear();
+            t.consume();
         });
         
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,11 +33,12 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.scene.Parent;
 
 /**
@@ -78,35 +79,27 @@
         this.editorController = c;
         startListeningToEditorSelection();
         startListeningToJobManagerRevision();
-        editorController.fxomDocumentProperty().addListener(new ChangeListener<FXOMDocument>() {
-            @Override
-            public void changed(ObservableValue<? extends FXOMDocument> ov, FXOMDocument od, FXOMDocument nd) {
-                assert editorController.getFxomDocument() == nd;
-                if (od != null) {
-                    od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
-                    od.cssRevisionProperty().removeListener(cssRevisionListener);
-                }
-                try {
-                    fxomDocumentDidChange(od);
-                } catch(RuntimeException x) {
-                    LOG.log(Level.SEVERE, "Bug", x); //NOI18N
-                }
-                if (nd != null) {
-                    nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
-                    nd.cssRevisionProperty().addListener(cssRevisionListener);
-                }
+        editorController.fxomDocumentProperty().addListener((ChangeListener<FXOMDocument>) (ov, od, nd) -> {
+            assert editorController.getFxomDocument() == nd;
+            if (od != null) {
+                od.sceneGraphRevisionProperty().removeListener(fxomDocumentRevisionListener);
+                od.cssRevisionProperty().removeListener(cssRevisionListener);
+            }
+            try {
+                fxomDocumentDidChange(od);
+            } catch(RuntimeException x) {
+                LOG.log(Level.SEVERE, "Bug", x); //NOI18N
+            }
+            if (nd != null) {
+                nd.sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
+                nd.cssRevisionProperty().addListener(cssRevisionListener);
             }
         });
         if (editorController.getFxomDocument() != null) {
             editorController.getFxomDocument().sceneGraphRevisionProperty().addListener(fxomDocumentRevisionListener);
             editorController.getFxomDocument().cssRevisionProperty().addListener(cssRevisionListener);
         }
-        editorController.toolStylesheetProperty().addListener(new ChangeListener<String>() {
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String od, String nd) {
-                toolStylesheetDidChange(od);
-            }
-        });
+        editorController.toolStylesheetProperty().addListener((ChangeListener<String>) (ov, od, nd) -> toolStylesheetDidChange(od));
     }
     
     /**
@@ -206,53 +199,40 @@
     }
     
     private final ChangeListener<Number> fxomDocumentRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    try {
-                        sceneGraphRevisionDidChange();
-                    } catch(RuntimeException x) {
-                        LOG.log(Level.SEVERE, "Bug", x); //NOI18N
-                    }
-                }
-            };
+            = (observable, oldValue, newValue) -> {
+        try {
+            sceneGraphRevisionDidChange();
+        } catch(RuntimeException x) {
+            LOG.log(Level.SEVERE, "Bug", x); //NOI18N
+        }
+    };
     
     private final ChangeListener<Number> cssRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    try {
-                        cssRevisionDidChange();
-                    } catch(RuntimeException x) {
-                        LOG.log(Level.SEVERE, "Bug", x); //NOI18N
-                    }
-                }
-            };
+            = (observable, oldValue, newValue) -> {
+        try {
+            cssRevisionDidChange();
+        } catch(RuntimeException x) {
+            LOG.log(Level.SEVERE, "Bug", x); //NOI18N
+        }
+    };
     
     private final ChangeListener<Number> jobManagerRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    try {
-                        jobManagerRevisionDidChange();
-                    } catch(RuntimeException x) {
-                        LOG.log(Level.SEVERE, "Bug", x); //NOI18N
-                    }
-                }
-            };
+            = (observable, oldValue, newValue) -> {
+        try {
+            jobManagerRevisionDidChange();
+        } catch(RuntimeException x) {
+            LOG.log(Level.SEVERE, "Bug", x); //NOI18N
+        }
+    };
     
     private final ChangeListener<Number> editorSelectionListener = 
-        new ChangeListener<Number>() {
-            @Override
-            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                try {
-                    assert editorController.getSelection().isValid(editorController.getFxomDocument());
-                    editorSelectionDidChange();
-                } catch(RuntimeException x) {
-                    LOG.log(Level.SEVERE, "Bug", x); //NOI18N
-                }
-            }
-        };
+        (observable, oldValue, newValue) -> {
+        try {
+            editorSelectionDidChange();
+        } catch(RuntimeException x) {
+            LOG.log(Level.SEVERE, "Bug", x); //NOI18N
+        }
+    };
     
     /**
      * Setup a listener which invokes {@link #editorSelectionDidChange} each
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPopupController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPopupController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,7 +33,6 @@
 
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.EventHandler;
 import javafx.geometry.Bounds;
 import javafx.scene.Node;
@@ -166,45 +165,27 @@
      * Private
      */
     
-    private final EventHandler<WindowEvent> onHiddenHandler = new EventHandler<WindowEvent>() {
-        @Override
-        public void handle(WindowEvent e) {
-            assert anchor != null;
+    private final ChangeListener<Bounds> layoutBoundsListener
+    = (ov, t, t1) -> anchorBoundsDidChange();
 
-            onHidden(e);
 
-            anchor.layoutBoundsProperty().removeListener(layoutBoundsListener);
-            anchor.localToSceneTransformProperty().removeListener(localToSceneTransformListener);
-            anchorWindow.xProperty().removeListener(xyListener);
-            
-            anchor = null;
-            anchorWindow = null;
-        }
+    private final ChangeListener<Transform> localToSceneTransformListener
+    = (ov, t, t1) -> anchorTransformDidChange();
+
+
+    private final ChangeListener<Number> xyListener
+    = (ov, t, t1) -> anchorXYDidChange();
+
+    private final EventHandler<WindowEvent> onHiddenHandler = e -> {
+        assert anchor != null;
+
+        onHidden(e);
+
+        anchor.layoutBoundsProperty().removeListener(layoutBoundsListener);
+        anchor.localToSceneTransformProperty().removeListener(localToSceneTransformListener);
+        anchorWindow.xProperty().removeListener(xyListener);
+        
+        anchor = null;
+        anchorWindow = null;
     };
-    
-    private final ChangeListener<Bounds> layoutBoundsListener
-            = new ChangeListener<Bounds>() {
-                @Override
-                public void changed(ObservableValue<? extends Bounds> ov, Bounds t, Bounds t1) {
-                    anchorBoundsDidChange();
-                }
-            };
-    
-    
-    private final ChangeListener<Transform> localToSceneTransformListener
-            = new ChangeListener<Transform>() {
-                @Override
-                public void changed(ObservableValue<? extends Transform> ov, Transform t, Transform t1) {
-                    anchorTransformDidChange();
-                }
-            };
-    
-    
-    private final ChangeListener<Number> xyListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                    anchorXYDidChange();
-                }
-            };
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractWindowController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractWindowController.java	Thu May 22 19:22:01 2014 -0700
@@ -58,12 +58,9 @@
     private final boolean sizeToScene; // true by default
     private String toolStylesheet = EditorController.getBuiltinToolStylesheet();
 
-    private final EventHandler<WindowEvent> closeRequestHandler = new EventHandler<WindowEvent>() {
-        @Override
-        public void handle(WindowEvent event) {
-            onCloseRequest(event);
-            event.consume();
-        }
+    private final EventHandler<WindowEvent> closeRequestHandler = event -> {
+        onCloseRequest(event);
+        event.consume();
     };
     
     public AbstractWindowController() {
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialog.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/AbstractModalDialog.java	Thu May 22 19:22:01 2014 -0700
@@ -292,12 +292,7 @@
         assert actionButton.getParent() == actionParent;
         assert imageView.getParent() == imageViewParent;
         
-        final EventHandler<ActionEvent> callUpdateButtonID = new EventHandler<ActionEvent>() {
-            @Override
-            public void handle(ActionEvent e) {
-                updateButtonID(e);
-            }
-        };
+        final EventHandler<ActionEvent> callUpdateButtonID = e -> updateButtonID(e);
         okButton.addEventHandler(ActionEvent.ACTION, callUpdateButtonID);
         cancelButton.addEventHandler(ActionEvent.ACTION, callUpdateButtonID);
         actionButton.addEventHandler(ActionEvent.ACTION, callUpdateButtonID);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/ErrorDialog.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/util/dialog/ErrorDialog.java	Thu May 22 19:22:01 2014 -0700
@@ -52,12 +52,7 @@
         setCancelButtonTitle(I18N.getString("label.close"));
         setActionButtonTitle(I18N.getString("error.dialog.label.details"));
         setActionButtonVisible(true);
-        setActionRunnable(new Runnable() {
-            @Override
-            public void run() {
-                showDetailsDialog();
-            }
-        });
+        setActionRunnable(() -> showDetailsDialog());
         updateActionButtonVisibility(); // not visible by default
     }
     
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/SearchController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/search/SearchController.java	Thu May 22 19:22:01 2014 -0700
@@ -33,15 +33,13 @@
 
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlController;
+
 import javafx.beans.property.StringProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.TextField;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
-import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.StackPane;
 
 /**
@@ -78,36 +76,22 @@
         // For SQE tests
         searchField.setId("Search Text"); //NOI18N
 
-        searchField.textProperty().addListener(new ChangeListener<String>() {
-
-            @Override
-            public void changed(ObservableValue<? extends String> ov, String oldStr, String newStr) {
-                if (newStr.isEmpty()) {
-                    searchIcon.getStyleClass().clear();
-                    searchIcon.getStyleClass().add("search-magnifying-glass"); //NOI18N
-                } else {
-                    searchIcon.getStyleClass().clear();
-                    searchIcon.getStyleClass().add("search-clear"); //NOI18N
-                }
+        searchField.textProperty().addListener((ChangeListener<String>) (ov, oldStr, newStr) -> {
+            if (newStr.isEmpty()) {
+                searchIcon.getStyleClass().clear();
+                searchIcon.getStyleClass().add("search-magnifying-glass"); //NOI18N
+            } else {
+                searchIcon.getStyleClass().clear();
+                searchIcon.getStyleClass().add("search-clear"); //NOI18N
             }
         });
         
-        searchField.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
-
-            @Override
-            public void handle(KeyEvent event) {
-                if (event.getCode() == KeyCode.ESCAPE) {
-                    searchField.clear();
-                }
+        searchField.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
+            if (event.getCode() == KeyCode.ESCAPE) {
+                searchField.clear();
             }
         });
         
-        searchIcon.setOnMouseClicked(new EventHandler<MouseEvent>() {
-
-            @Override
-            public void handle(MouseEvent t) {
-                searchField.clear();
-            }
-        });
+        searchIcon.setOnMouseClicked(t -> searchField.clear());
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/ContextMenuController.java	Thu May 22 19:22:01 2014 -0700
@@ -40,8 +40,8 @@
 import com.oracle.javafx.scenebuilder.kit.editor.selection.ObjectSelectionGroup;
 import com.oracle.javafx.scenebuilder.kit.editor.selection.Selection;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.event.Event;
@@ -108,41 +108,27 @@
     private MenuItem decreaseColumnSpan;
 
     private final EventHandler<Event> onShowingMenuEventHandler
-            = new EventHandler<Event>() {
-                @Override
-                public void handle(Event t) {
-                    assert t.getSource() instanceof Menu;
-                    final Menu menu = (Menu) t.getSource();
-                    handleOnShowing(menu.getItems());
-                }
-            };
+            = t -> {
+        assert t.getSource() instanceof Menu;
+        final Menu menu = (Menu) t.getSource();
+        handleOnShowing(menu.getItems());
+    };
 
     private final EventHandler<WindowEvent> onShowingContextMenuEventHandler
-            = new EventHandler<WindowEvent>() {
-                @Override
-                public void handle(WindowEvent t) {
-                    assert t.getSource() instanceof ContextMenu;
-                    final ContextMenu contextMenu = (ContextMenu) t.getSource();
-                    handleOnShowing(contextMenu.getItems());
-                }
-            };
+            = t -> {
+        assert t.getSource() instanceof ContextMenu;
+        final ContextMenu contextMenu = (ContextMenu) t.getSource();
+        handleOnShowing(contextMenu.getItems());
+    };
 
     private final EventHandler<ActionEvent> onActionEventHandler
-            = new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent t) {
-                    assert t.getSource() instanceof MenuItem;
-                    handleOnActionMenu((MenuItem) t.getSource());
-                }
-            };
+            = t -> {
+        assert t.getSource() instanceof MenuItem;
+        handleOnActionMenu((MenuItem) t.getSource());
+    };
 
     private final ChangeListener<Number> jobManagerRevisionListener
-            = new ChangeListener<Number>() {
-                @Override
-                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-                    jobManagerRevisionDidChange();
-                }
-            };
+            = (observable, oldValue, newValue) -> jobManagerRevisionDidChange();
 
     public ContextMenuController(final EditorController editorController) {
         this.editorController = editorController;
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/InlineEditController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/util/InlineEditController.java	Thu May 22 19:22:01 2014 -0700
@@ -35,9 +35,8 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPopupController;
 import com.oracle.javafx.scenebuilder.kit.metadata.util.PrefixedValue;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.event.EventHandler;
 import javafx.geometry.Bounds;
 import javafx.geometry.Insets;
 import javafx.geometry.Point2D;
@@ -166,37 +165,34 @@
         // Handle key events
         // 1) Commit then stop inline editing when pressing Ctl/Meta + ENTER key
         // 2) Stop inline editing without commit when pressing ESCAPE key
-        editor.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
-            @Override
-            public void handle(KeyEvent event) {
-                switch (event.getCode()) {
-                    // COMMIT the new value on ENTER key pressed
-                    case ENTER:
-                        // Commit inline editing on ENTER key :
-                        // - if editor is a TextField
-                        // - if META/CTL is down (both TextField and TextArea)
-                        if ((editor instanceof TextField) || isModifierDown(event)) {
-                            requestCommitAndClose(requestCommit, editor.getText());
-                            // Consume the event so it is not received by the underlyting panel controller
-                            event.consume();
-                        }
-                        break;
-                    // COMMIT the new value on TAB key pressed
-                    case TAB:
-                        // Commit inline editing on TAB key
+        editor.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
+            switch (event.getCode()) {
+                // COMMIT the new value on ENTER key pressed
+                case ENTER:
+                    // Commit inline editing on ENTER key :
+                    // - if editor is a TextField
+                    // - if META/CTL is down (both TextField and TextArea)
+                    if ((editor instanceof TextField) || isModifierDown(event)) {
                         requestCommitAndClose(requestCommit, editor.getText());
                         // Consume the event so it is not received by the underlyting panel controller
                         event.consume();
-                        break;
-                    // STOP inline editing session without COMMIT on ESCAPE key pressed
-                    case ESCAPE:
-                        requestRevertAndClose(requestRevert);
-                        // Consume the event so it is not received by the underlyting panel controller
-                        event.consume();
-                        break;
-                    default:
-                        break;
-                }
+                    }
+                    break;
+                // COMMIT the new value on TAB key pressed
+                case TAB:
+                    // Commit inline editing on TAB key
+                    requestCommitAndClose(requestCommit, editor.getText());
+                    // Consume the event so it is not received by the underlyting panel controller
+                    event.consume();
+                    break;
+                // STOP inline editing session without COMMIT on ESCAPE key pressed
+                case ESCAPE:
+                    requestRevertAndClose(requestRevert);
+                    // Consume the event so it is not received by the underlyting panel controller
+                    event.consume();
+                    break;
+                default:
+                    break;
             }
         });
 
@@ -322,16 +318,12 @@
             this.requestCommit = requestCommit;
             this.initialValue = editor.getText();
 
-            this.editor.focusedProperty().addListener(new ChangeListener<Boolean>() {
-
-                @Override
-                public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                    // The inline editing popup auto hide when loosing focus :
-                    // need to commit inline editing on focus change
-                    if (getEditorController().isTextEditingSessionOnGoing() // Editing session has not been ended by ENTER key
-                            && newValue == false) {
-                        requestCommitAndClose(requestCommit, editor.getText());
-                    }
+            this.editor.focusedProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> {
+                // The inline editing popup auto hide when loosing focus :
+                // need to commit inline editing on focus change
+                if (getEditorController().isTextEditingSessionOnGoing() // Editing session has not been ended by ENTER key
+                        && newValue == false) {
+                    requestCommitAndClose(requestCommit, editor.getText());
                 }
             });
         }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/glossary/ControllerClass.java	Thu May 22 19:22:01 2014 -0700
@@ -190,20 +190,16 @@
     private static File[] filterJavaFiles(File directory) {
         // final int[] count = {0};
         final List<File> fileList = new ArrayList<>();
-        FilenameFilter ff = new FilenameFilter() {
-
-            @Override
-            public boolean accept(File dir, String name) {
-                // count[0] = count[0] + 1;
-                if (name.endsWith(".java")) { //NOI18N
-                    final File file = new File(dir, name);
-                    if (file.canRead() && !file.isDirectory()) {
-                        fileList.add(file);
-                        return true;
-                    }
+        FilenameFilter ff = (dir, name) -> {
+            // count[0] = count[0] + 1;
+            if (name.endsWith(".java")) { //NOI18N
+                final File file = new File(dir, name);
+                if (file.canRead() && !file.isDirectory()) {
+                    fileList.add(file);
+                    return true;
                 }
-                return false;
             }
+            return false;
         };
         if (directory != null) {
             directory.list(ff);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/library/user/UserLibrary.java	Thu May 22 19:22:01 2014 -0700
@@ -245,12 +245,9 @@
             previousJarReports.setAll(jarReports);
             jarReports.setAll(newJarReports);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    previousJarReports.setAll(jarReports);
-                    jarReports.setAll(newJarReports);
-                }
+            Platform.runLater(() -> {
+                previousJarReports.setAll(jarReports);
+                jarReports.setAll(newJarReports);
             });
         }
     }
@@ -259,12 +256,7 @@
         if (Platform.isFxApplicationThread()) {
             itemsProperty.setAll(items);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    itemsProperty.setAll(items);
-                }
-            });
+            Platform.runLater(() -> itemsProperty.setAll(items));
         }
     }
     
@@ -272,12 +264,7 @@
         if (Platform.isFxApplicationThread()) {
             itemsProperty.addAll(items);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    itemsProperty.addAll(items);
-                }
-            });
+            Platform.runLater(() -> itemsProperty.addAll(items));
         }
     }
     
@@ -285,12 +272,7 @@
         if (Platform.isFxApplicationThread()) {
             changeClassLoader(newClassLoader);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    changeClassLoader(newClassLoader);
-                }
-            });
+            Platform.runLater(() -> changeClassLoader(newClassLoader));
         }
     }
     
@@ -298,12 +280,7 @@
         if (Platform.isFxApplicationThread()) {
             explorationCountProperty.set(count);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    explorationCountProperty.set(count);
-                }
-            });
+            Platform.runLater(() -> explorationCountProperty.set(count));
         }
     }
     
@@ -311,12 +288,7 @@
         if (Platform.isFxApplicationThread()) {
             explorationDateProperty.set(date);
         } else {
-            Platform.runLater(new Runnable() {
-                @Override
-                public void run() {
-                    explorationDateProperty.set(date);
-                }
-            });
+            Platform.runLater(() -> explorationDateProperty.set(date));
         }
     }
     
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/FileWatcher.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/FileWatcher.java	Thu May 22 19:22:01 2014 -0700
@@ -182,31 +182,16 @@
                 if ((lastModifiedTime == null) && (newModifiedTime != null)) {
                     // target has been created
                     modifiedTimes.put(target, newModifiedTime);
-                    Platform.runLater(new Runnable() {
-                        @Override
-                        public void run() {
-                            delegate.fileWatcherDidWatchTargetCreation(target);
-                        }
-                    });
+                    Platform.runLater(() -> delegate.fileWatcherDidWatchTargetCreation(target));
                 } else if ((lastModifiedTime != null) && (newModifiedTime == null)) {
                     // target has been deleted
                     modifiedTimes.remove(target);
-                    Platform.runLater(new Runnable() {
-                        @Override
-                        public void run() {
-                            delegate.fileWatcherDidWatchTargetDeletion(target);
-                        }
-                    });
+                    Platform.runLater(() -> delegate.fileWatcherDidWatchTargetDeletion(target));
                 } else if (Objects.equals(lastModifiedTime, newModifiedTime) == false) {
                     // target has been modified
                     assert newModifiedTime != null;
                     modifiedTimes.put(target, newModifiedTime);
-                    Platform.runLater(new Runnable() {
-                        @Override
-                        public void run() {
-                            delegate.fileWatcherDidWatchTargetModification(target);
-                        }
-                    });
+                    Platform.runLater(() -> delegate.fileWatcherDidWatchTargetModification(target));
                 }
             }
         }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/BlendPathItem.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/BlendPathItem.java	Thu May 22 19:22:01 2014 -0700
@@ -31,8 +31,6 @@
  */
 package com.oracle.javafx.scenebuilder.kit.util.control.effectpicker;
 
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.scene.control.Menu;
 import javafx.scene.control.RadioMenuItem;
 import javafx.scene.control.SeparatorMenuItem;
@@ -105,22 +103,14 @@
         // Add Select Input Menu
         final Menu inputMenu = new Menu("Select Input"); //NOI18N
         topMenuItem.setToggleGroup(inputToggleGroup);
-        topMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent event) {
-                toggle_button.setText(getSimpleName() + " (TopInput)"); //NOI18N
-                effectPickerController.updateUI(BlendPathItem.this);
-            }
+        topMenuItem.setOnAction(event -> {
+            toggle_button.setText(getSimpleName() + " (TopInput)"); //NOI18N
+            effectPickerController.updateUI(BlendPathItem.this);
         });
         bottomMenuItem.setToggleGroup(inputToggleGroup);
-        bottomMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent event) {
-                toggle_button.setText(getSimpleName() + " (BottomInput)"); //NOI18N
-                effectPickerController.updateUI(BlendPathItem.this);
-            }
+        bottomMenuItem.setOnAction(event -> {
+            toggle_button.setText(getSimpleName() + " (BottomInput)"); //NOI18N
+            effectPickerController.updateUI(BlendPathItem.this);
         });
 
         inputMenu.getItems().addAll(topMenuItem, bottomMenuItem);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPathItem.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPathItem.java	Thu May 22 19:22:01 2014 -0700
@@ -35,8 +35,8 @@
 import java.net.URL;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
@@ -212,31 +212,27 @@
         final Image img = new Image(url.toExternalForm());
         image_view.setImage(img);
 
-        menu_button.showingProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                if (newValue) {
-                    // Disable menu item for the Lighting bump input.
-                    // javadoc says :
-                    // The optional bump map input. If not specified, a bump map 
-                    // will be automatically generated from the default input. 
-                    // If set to null, or left unspecified, a graphical image of 
-                    // the Node to which the Effect is attached will be used to 
-                    // generate a default bump map.
-                    // Default value:a Shadow effect with a radius of 10
-                    //
-                    // SB 2.0 just allow to replace the bump input property
-                    if (EffectPathItem.this instanceof LightingPathItem) {
-                        delete_input_menuitem.setDisable(true);
-                    } else {
-                        delete_input_menuitem.setDisable(false);
-                    }
-                    if (parentPahItem instanceof LightingPathItem) {
-                        delete_menuitem.setDisable(true);
-                    } else {
-                        delete_menuitem.setDisable(false);
-                    }
+        menu_button.showingProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> {
+            if (newValue) {
+                // Disable menu item for the Lighting bump input.
+                // javadoc says :
+                // The optional bump map input. If not specified, a bump map 
+                // will be automatically generated from the default input. 
+                // If set to null, or left unspecified, a graphical image of 
+                // the Node to which the Effect is attached will be used to 
+                // generate a default bump map.
+                // Default value:a Shadow effect with a radius of 10
+                //
+                // SB 2.0 just allow to replace the bump input property
+                if (EffectPathItem.this instanceof LightingPathItem) {
+                    delete_input_menuitem.setDisable(true);
+                } else {
+                    delete_input_menuitem.setDisable(false);
+                }
+                if (parentPahItem instanceof LightingPathItem) {
+                    delete_menuitem.setDisable(true);
+                } else {
+                    delete_menuitem.setDisable(false);
                 }
             }
         });
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPicker.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPicker.java	Thu May 22 19:22:01 2014 -0700
@@ -32,16 +32,16 @@
 package com.oracle.javafx.scenebuilder.kit.util.control.effectpicker;
 
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ReadOnlyBooleanProperty;
 import javafx.beans.property.ReadOnlyIntegerProperty;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Node;
 import javafx.scene.control.MenuItem;
@@ -140,13 +140,10 @@
         final List<MenuItem> menuItems = new ArrayList<>();
         for (final Class<? extends Effect> clazz : getEffectClasses()) {
             final MenuItem mi = new MenuItem(clazz.getSimpleName());
-            mi.setOnAction(new EventHandler<ActionEvent>() {
-                @Override
-                public void handle(ActionEvent t) {
-                    final Effect effect = Utils.newInstance(clazz);
-                    setRootEffectProperty(effect);
-                    controller.incrementRevision();
-                }
+            mi.setOnAction(t -> {
+                final Effect effect = Utils.newInstance(clazz);
+                setRootEffectProperty(effect);
+                controller.incrementRevision();
             });
             menuItems.add(mi);
         }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/LightingPathItem.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/LightingPathItem.java	Thu May 22 19:22:01 2014 -0700
@@ -31,8 +31,6 @@
  */
 package com.oracle.javafx.scenebuilder.kit.util.control.effectpicker;
 
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.scene.control.Menu;
 import javafx.scene.control.RadioMenuItem;
 import javafx.scene.control.SeparatorMenuItem;
@@ -105,22 +103,14 @@
         // Add Select Input Menu
         final Menu inputMenu = new Menu("Select Input"); //NOI18N
         bumpMenuItem.setToggleGroup(inputToggleGroup);
-        bumpMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent event) {
-                toggle_button.setText(getSimpleName() + " (BumpInput)"); //NOI18N
-                effectPickerController.updateUI(LightingPathItem.this);
-            }
+        bumpMenuItem.setOnAction(event -> {
+            toggle_button.setText(getSimpleName() + " (BumpInput)"); //NOI18N
+            effectPickerController.updateUI(LightingPathItem.this);
         });
         contentMenuItem.setToggleGroup(inputToggleGroup);
-        contentMenuItem.setOnAction(new EventHandler<ActionEvent>() {
-
-            @Override
-            public void handle(ActionEvent event) {
-                toggle_button.setText(getSimpleName() + " (ContentInput)"); //NOI18N
-                effectPickerController.updateUI(LightingPathItem.this);
-            }
+        contentMenuItem.setOnAction(event -> {
+            toggle_button.setText(getSimpleName() + " (ContentInput)"); //NOI18N
+            effectPickerController.updateUI(LightingPathItem.this);
         });
 
         inputMenu.getItems().addAll(bumpMenuItem, contentMenuItem);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/CheckBoxControl.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/CheckBoxControl.java	Thu May 22 19:22:01 2014 -0700
@@ -32,13 +32,14 @@
 package com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.editors;
 
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPickerController;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -90,15 +91,11 @@
 
         editor_label.setText(label);
         editor_checkbox.setSelected(initValue);
-        editor_checkbox.selectedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
-                // First update the model
-                setValue(t1);
-                // Then notify the controller a change occured
-                effectPickerController.incrementRevision();
-            }
+        editor_checkbox.selectedProperty().addListener((ChangeListener<Boolean>) (ov, t, t1) -> {
+            // First update the model
+            setValue(t1);
+            // Then notify the controller a change occured
+            effectPickerController.incrementRevision();
         });
 
         setValue(initValue);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/DoubleTextFieldControl.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/DoubleTextFieldControl.java	Thu May 22 19:22:01 2014 -0700
@@ -35,6 +35,7 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.EditorUtils;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPickerController;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.Utils;
+
 import javafx.beans.property.SimpleDoubleProperty;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
@@ -43,12 +44,13 @@
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
 import javafx.scene.layout.GridPane;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+
 import javafx.beans.property.DoubleProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 
 public class DoubleTextFieldControl extends GridPane {
 
@@ -74,18 +76,14 @@
         this.effectPickerController = effectPickerController;
         initialize(labelString, min, max, initVal, incDec);
 
-        editor_textfield.focusedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                // Commit the value on focus lost
-                if (newValue == false) {
-                    double inputValue = Double.parseDouble(editor_textfield.getText());
-                    // First update the model
-                    setValue(inputValue);
-                    // Then notify the controller a change occured
-                    effectPickerController.incrementRevision();
-                }
+        editor_textfield.focusedProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> {
+            // Commit the value on focus lost
+            if (newValue == false) {
+                double inputValue = Double.parseDouble(editor_textfield.getText());
+                // First update the model
+                setValue(inputValue);
+                // Then notify the controller a change occured
+                effectPickerController.incrementRevision();
             }
         });
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/EnumControl.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/EnumControl.java	Thu May 22 19:22:01 2014 -0700
@@ -32,13 +32,14 @@
 package com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.editors;
 
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPickerController;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -91,15 +92,11 @@
         editor_label.setText(label);
         editor_choicebox.getItems().addAll(values);
         editor_choicebox.setValue(initValue);
-        editor_choicebox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<T>() {
-
-            @Override
-            public void changed(ObservableValue<? extends T> ov, T t, T t1) {
-                // First update the model
-                setValue(t1);
-                // Then notify the controller a change occured
-                effectPickerController.incrementRevision();
-            }
+        editor_choicebox.getSelectionModel().selectedItemProperty().addListener((ChangeListener<T>) (ov, t, t1) -> {
+            // First update the model
+            setValue(t1);
+            // Then notify the controller a change occured
+            effectPickerController.incrementRevision();
         });
         
         setValue(initValue);
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/LightControl.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/LightControl.java	Thu May 22 19:22:01 2014 -0700
@@ -33,15 +33,16 @@
 
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPickerController;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -146,35 +147,31 @@
             lightChoiceBox.setValue(LightsEnum.SPOT);
         }
 
-        lightChoiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<LightsEnum>() {
-
-            @Override
-            public void changed(ObservableValue<? extends LightsEnum> ov, LightsEnum oldValue, LightsEnum newValue) {
-                final Light light;
-                switch (newValue) {
-                    case DISTANT:
-                        light = defaultDistant;
-                        break;
-                    case POINT:
-                        light = defaultPoint;
-                        break;
-                    case SPOT:
-                        light = defaultSpot;
-                        break;
-                    case NONE:
-                        light = null;
-                        break;
-                    default:
-                        light = null;
-                        assert false;
-                }
-                // First update the model with new light value
-                setValue(light);
-                // Then update the UI
-                updateLightPropertiesUI();
-                // Then notify the controller a change occured
-                effectPickerController.incrementRevision();
+        lightChoiceBox.getSelectionModel().selectedItemProperty().addListener((ChangeListener<LightsEnum>) (ov, oldValue, newValue) -> {
+            final Light light;
+            switch (newValue) {
+                case DISTANT:
+                    light = defaultDistant;
+                    break;
+                case POINT:
+                    light = defaultPoint;
+                    break;
+                case SPOT:
+                    light = defaultSpot;
+                    break;
+                case NONE:
+                    light = null;
+                    break;
+                default:
+                    light = null;
+                    assert false;
             }
+            // First update the model with new light value
+            setValue(light);
+            // Then update the UI
+            updateLightPropertiesUI();
+            // Then notify the controller a change occured
+            effectPickerController.incrementRevision();
         });
 
         updateLightPropertiesUI();
@@ -254,24 +251,14 @@
     private PaintPicker getColorPicker() {
         if (colorPicker == null) {
             colorPicker = new PaintPicker(effectPickerController.getPaintPickerDelegate(), PaintPicker.Mode.COLOR);
-            colorPicker.paintProperty().addListener(new ChangeListener<Paint>() {
-
-                @Override
-                public void changed(ObservableValue<? extends Paint> ov, Paint oldValue, Paint newValue) {
-                    assert newValue instanceof Color;
-                    final Color color = (Color) newValue;
-                    getValue().setColor(color);
-                    // Then notify the controller a change occured
-                    effectPickerController.incrementRevision();
-                }
+            colorPicker.paintProperty().addListener((ChangeListener<Paint>) (ov, oldValue, newValue) -> {
+                assert newValue instanceof Color;
+                final Color color = (Color) newValue;
+                getValue().setColor(color);
+                // Then notify the controller a change occured
+                effectPickerController.incrementRevision();
             });
-            colorPicker.liveUpdateProperty().addListener(new ChangeListener<Boolean>() {
-
-                @Override
-                public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                    setLiveUpdate(newValue);
-                }
-            });
+            colorPicker.liveUpdateProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> setLiveUpdate(newValue));
         }
         return colorPicker;
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/SliderControl.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/editors/SliderControl.java	Thu May 22 19:22:01 2014 -0700
@@ -35,13 +35,14 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.editors.EditorUtils;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.EffectPickerController;
 import com.oracle.javafx.scenebuilder.kit.util.control.effectpicker.Utils;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+
 import javafx.beans.property.DoubleProperty;
 import javafx.beans.property.SimpleDoubleProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -161,37 +162,23 @@
         editor_slider.setMax(max);
         editor_slider.setValue(initVal);
         setValue(initVal);
-        editor_slider.valueProperty().addListener(new ChangeListener<Number>() {
+        editor_slider.valueProperty().addListener((ChangeListener<Number>) (ov, oldVal, newVal) -> {
+            // First update the model
+            setValue(newVal);
+            // Then notify the controller a change occured
+            effectPickerController.incrementRevision();
+        });
+        editor_slider.pressedProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> effectPickerController.setLiveUpdate(newValue));
 
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number oldVal, Number newVal) {
+        editor_textfield.focusedProperty().addListener((ChangeListener<Boolean>) (ov, oldValue, newValue) -> {
+            // Commit the value on focus lost
+            if (newValue == false) {
+                double inputValue = Double.parseDouble(editor_textfield.getText());
                 // First update the model
-                setValue(newVal);
+                setValue(inputValue);
                 // Then notify the controller a change occured
                 effectPickerController.incrementRevision();
             }
         });
-        editor_slider.pressedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                effectPickerController.setLiveUpdate(newValue);
-            }
-        });
-
-        editor_textfield.focusedProperty().addListener(new ChangeListener<Boolean>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                // Commit the value on focus lost
-                if (newValue == false) {
-                    double inputValue = Double.parseDouble(editor_textfield.getText());
-                    // First update the model
-                    setValue(inputValue);
-                    // Then notify the controller a change occured
-                    effectPickerController.incrementRevision();
-                }
-            }
-        });
     }
 }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPickerController.java	Thu May 22 19:22:01 2014 -0700
@@ -34,12 +34,12 @@
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPicker.Mode;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.colorpicker.ColorPicker;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.gradientpicker.GradientPicker;
+
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.scene.control.ToggleButton;
@@ -182,13 +182,9 @@
         setPaintProperty(DEFAULT_COLOR);
 
         // Resize the window so it matches the selected editor size
-        root_vbox.heightProperty().addListener(new ChangeListener<Number>() {
-
-            @Override
-            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                final Window window = root_vbox.getScene().getWindow();
-                window.sizeToScene();
-            }
+        root_vbox.heightProperty().addListener((ChangeListener<Number>) (ov, t, t1) -> {
+            final Window window = root_vbox.getScene().getWindow();
+            window.sizeToScene();
         });
         root_vbox.getChildren().add(colorPicker);
     }
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java	Wed May 21 07:36:11 2014 -0700
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.java	Thu May 22 19:22:01 2014 -0700
@@ -35,11 +35,12 @@
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.PaintPickerController;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.gradientpicker.GradientPicker;
 import com.oracle.javafx.scenebuilder.kit.util.control.paintpicker.gradientpicker.GradientPickerStop;
+
 import java.io.IOException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+
 import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.control.ScrollPane;
@@ -150,61 +151,49 @@
         // Investigate why height + width listeners do not work
         // Indeed, the picker_handle_stackpane bounds may still be null at this point
         // UPDATE BELOW TO BE CALLED ONCE ONLY AT DISPLAY TIME
-        picker_region.boundsInParentProperty().addListener(new ChangeListener<Bounds>() {
-            @Override
-            public void changed(ObservableValue<? extends Bounds> ov, Bounds oldb, Bounds newb) {
-                picker_scrollpane.setHvalue(0.5);
-                picker_scrollpane.setVvalue(0.5);
-                // Init time only
-                final Paint paint = paintPickerController.getPaintProperty();
-                if (paint instanceof Color) {
-                    updateUI((Color) paint);
-                } else if (paint instanceof LinearGradient
-                        || paint instanceof RadialGradient) {
-                    final GradientPicker gradientPicker = paintPickerController.getGradientPicker();
-                    final GradientPickerStop gradientPickerStop = gradientPicker.getSelectedStop();
-                    // Update the color preview with the color of the selected stop
-                    if (gradientPickerStop != null) {
-                        updateUI(gradientPickerStop.getColor());
-                    }
+        picker_region.boundsInParentProperty().addListener((ChangeListener<Bounds>) (ov, oldb, newb) -> {
+            picker_scrollpane.setHvalue(0.5);
+            picker_scrollpane.setVvalue(0.5);
+            // Init time only
+            final Paint paint = paintPickerController.getPaintProperty();
+            if (paint instanceof Color) {
+                updateUI((Color) paint);
+            } else if (paint instanceof LinearGradient
+                    || paint instanceof RadialGradient) {
+                final GradientPicker gradientPicker = paintPickerController.getGradientPicker();
+                final GradientPickerStop gradientPickerStop = gradientPicker.getSelectedStop();
+                // Update the color preview with the color of the selected stop
+                if (gradientPickerStop != null) {
+                    updateUI(gradientPickerStop.getColor());
                 }
             }
         });
 
-        final ChangeListener<Boolean> onHSBFocusedChange = new ChangeListener<Boolean>() {
-            @Override
-            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
-                if (newValue == false) {
+        final ChangeListener<Boolean> onHSBFocusedChange = (ov, oldValue, newValue) -> {
+            if (newValue == false) {
+                // Update UI
+                final Color color = updateUI_OnHSBChange();
+                // Update model
+                setPaintProperty(color);
+            }