diff --git a/modules/controls/src/main/java/com/sun/javafx/charts/Legend.java b/modules/controls/src/main/java/com/sun/javafx/charts/Legend.java --- a/modules/controls/src/main/java/com/sun/javafx/charts/Legend.java +++ b/modules/controls/src/main/java/com/sun/javafx/charts/Legend.java @@ -52,12 +52,10 @@ // -------------- PRIVATE FIELDS ------------------------------------------ private int rows = 0, columns = 0; - private ListChangeListener itemsListener = new ListChangeListener () { - @Override public void onChanged(Change c) { - getChildren().clear(); - for (LegendItem item : getItems()) getChildren().add(item.label); - if(isVisible()) requestLayout(); - } + private ListChangeListener itemsListener = c -> { + getChildren().clear(); + for (LegendItem item : getItems()) getChildren().add(item.label); + if(isVisible()) requestLayout(); }; // -------------- PUBLIC PROPERTIES ---------------------------------------- diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/GlobalMenuAdapter.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/GlobalMenuAdapter.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/GlobalMenuAdapter.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/GlobalMenuAdapter.java @@ -70,22 +70,18 @@ bindMenuItemProperties(this, menu); - menu.showingProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable property) { - if (menu.isShowing() && !isShowing()) { - show(); - } else if (!menu.isShowing() && isShowing()) { - hide(); - } + menu.showingProperty().addListener(property -> { + if (menu.isShowing() && !isShowing()) { + show(); + } else if (!menu.isShowing() && isShowing()) { + hide(); } }); - showingProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable property) { - if (isShowing() && !menu.isShowing()) { - menu.show(); - } else if (!isShowing() && menu.isShowing()) { - menu.hide(); - } + showingProperty().addListener(property -> { + if (isShowing() && !menu.isShowing()) { + menu.show(); + } else if (!isShowing() && menu.isShowing()) { + menu.hide(); } }); @@ -153,10 +149,8 @@ adapter.acceleratorProperty().bind(menuItem.acceleratorProperty()); adapter.mnemonicParsingProperty().bind(menuItem.mnemonicParsingProperty()); - adapter.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent ev) { - menuItem.fire(); - } + adapter.setOnAction(ev -> { + menuItem.fire(); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/SelectedCellsMap.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/SelectedCellsMap.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/SelectedCellsMap.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/SelectedCellsMap.java @@ -55,18 +55,10 @@ public SelectedCellsMap(final ListChangeListener listener) { selectedCells = FXCollections.observableArrayList(); - sortedSelectedCells = new SortedList<>(selectedCells, new Comparator() { - @Override public int compare(T o1, T o2) { - return o1.getRow() - o2.getRow(); - } - }); + sortedSelectedCells = new SortedList<>(selectedCells, (o1, o2) -> o1.getRow() - o2.getRow()); sortedSelectedCells.addListener(listener); - selectedCellBitSetMap = new TreeMap<>(new Comparator() { - @Override public int compare(Integer o1, Integer o2) { - return o1.compareTo(o2); - } - }); + selectedCellBitSetMap = new TreeMap<>((o1, o2) -> o1.compareTo(o2)); } public int size() { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/AccordionBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/AccordionBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/AccordionBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/AccordionBehavior.java @@ -190,17 +190,15 @@ } } }; - private final ListChangeListener panesListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasAdded()) { - for (final TitledPane tp: c.getAddedSubList()) { - tp.focusedProperty().addListener(paneFocusListener); - } - } else if (c.wasRemoved()) { - for (final TitledPane tp: c.getAddedSubList()) { - tp.focusedProperty().removeListener(paneFocusListener); - } + private final ListChangeListener panesListener = c -> { + while (c.next()) { + if (c.wasAdded()) { + for (final TitledPane tp: c.getAddedSubList()) { + tp.focusedProperty().addListener(paneFocusListener); + } + } else if (c.wasRemoved()) { + for (final TitledPane tp: c.getAddedSubList()) { + tp.focusedProperty().removeListener(paneFocusListener); } } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/BehaviorBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/BehaviorBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/BehaviorBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/BehaviorBase.java @@ -130,21 +130,17 @@ /** * Listens to any key events on the Control and responds to them */ - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - if (!e.isConsumed()) { - callActionForEvent(e); - } + private final EventHandler keyEventListener = e -> { + if (!e.isConsumed()) { + callActionForEvent(e); } }; /** * Listens to any focus events on the Control and calls protected methods as a result */ - private final InvalidationListener focusListener = new InvalidationListener() { - @Override public void invalidated(Observable property) { - focusChanged(); - } + private final InvalidationListener focusListener = property -> { + focusChanged(); }; /** diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java @@ -240,38 +240,34 @@ private boolean selectionChanging = false; - private final ListChangeListener selectedIndicesListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - while (c.next()) { - MultipleSelectionModel sm = getControl().getSelectionModel(); - - // there are no selected items, so lets clear out the anchor - if (! selectionChanging) { - if (sm.isEmpty()) { - setAnchor(-1); - } else if (! sm.isSelected(getAnchor())) { - setAnchor(-1); - } + private final ListChangeListener selectedIndicesListener = c -> { + while (c.next()) { + MultipleSelectionModel sm = getControl().getSelectionModel(); + + // there are no selected items, so lets clear out the anchor + if (! selectionChanging) { + if (sm.isEmpty()) { + setAnchor(-1); + } else if (! sm.isSelected(getAnchor())) { + setAnchor(-1); } - - int addedSize = c.getAddedSize(); - if (addedSize > 0 && ! hasAnchor()) { - List addedSubList = c.getAddedSubList(); - int index = addedSubList.get(addedSize - 1); - setAnchor(index); - } + } + + int addedSize = c.getAddedSize(); + if (addedSize > 0 && ! hasAnchor()) { + List addedSubList = c.getAddedSubList(); + int index = addedSubList.get(addedSize - 1); + setAnchor(index); } } }; - private final ListChangeListener itemsListListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasAdded() && c.getFrom() <= getAnchor()) { - setAnchor(getAnchor() + c.getAddedSize()); - } else if (c.wasRemoved() && c.getFrom() <= getAnchor()) { - setAnchor(getAnchor() - c.getRemovedSize()); - } + private final ListChangeListener itemsListListener = c -> { + while (c.next()) { + if (c.wasAdded() && c.getFrom() <= getAnchor()) { + setAnchor(getAnchor() + c.getAddedSize()); + } else if (c.wasRemoved() && c.getFrom() <= getAnchor()) { + setAnchor(getAnchor() - c.getRemovedSize()); } } }; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ScrollBarBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ScrollBarBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ScrollBarBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ScrollBarBehavior.java @@ -174,9 +174,7 @@ timeline.setCycleCount(Timeline.INDEFINITE); final EventHandler step = - new EventHandler() { - @Override - public void handle(ActionEvent event) { + event -> { boolean i = (pos > ((bar.getValue() - bar.getMin())/(bar.getMax() - bar.getMin()))); if (incrementing == i) { // we started incrementing and still are, or we @@ -186,8 +184,7 @@ else { stopTimeline(); } - } - }; + }; final KeyFrame kf = new KeyFrame(Duration.millis(200), step); timeline.getKeyFrames().add(kf); @@ -214,17 +211,14 @@ timeline.setCycleCount(Timeline.INDEFINITE); final EventHandler dec = - new EventHandler() { - @Override - public void handle(ActionEvent event) { + event -> { if (bar.getValue() > bar.getMin()) { bar.decrement(); } else { stopTimeline(); } - } - }; + }; final KeyFrame kf = new KeyFrame(Duration.millis(200), dec); timeline.getKeyFrames().add(kf); @@ -251,17 +245,14 @@ timeline.setCycleCount(Timeline.INDEFINITE); final EventHandler inc = - new EventHandler() { - @Override - public void handle(ActionEvent event) { + event -> { if (bar.getValue() < bar.getMax()) { bar.increment(); } else { stopTimeline(); } - } - }; + }; final KeyFrame kf = new KeyFrame(Duration.millis(200), inc); timeline.getKeyFrames().add(kf); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehavior.java @@ -48,20 +48,15 @@ * * *************************************************************************/ - private final ChangeListener> selectionModelListener = - new ChangeListener>() { - @Override - public void changed(ObservableValue> observable, - TableViewSelectionModel oldValue, - TableViewSelectionModel newValue) { - if (oldValue != null) { - oldValue.getSelectedCells().removeListener(weakSelectedCellsListener); - } - if (newValue != null) { - newValue.getSelectedCells().addListener(weakSelectedCellsListener); - } - } - }; + private final ChangeListener> selectionModelListener = + (observable, oldValue, newValue) -> { + if (oldValue != null) { + oldValue.getSelectedCells().removeListener(weakSelectedCellsListener); + } + if (newValue != null) { + newValue.getSelectedCells().addListener(weakSelectedCellsListener); + } + }; private final WeakChangeListener> weakSelectionModelListener = new WeakChangeListener>(selectionModelListener); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java @@ -223,39 +223,37 @@ private final SizeLimitedList selectionHistory = new SizeLimitedList<>(10); - protected final ListChangeListener selectedCellsListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - while (c.next()) { - TableSelectionModel sm = getSelectionModel(); - if (sm == null) return; - - TablePositionBase anchor = getAnchor(); - boolean cellSelectionEnabled = sm.isCellSelectionEnabled(); - - int addedSize = c.getAddedSize(); - List addedSubList = (List) c.getAddedSubList(); + protected final ListChangeListener selectedCellsListener = c -> { + while (c.next()) { + TableSelectionModel sm = getSelectionModel(); + if (sm == null) return; - for (TablePositionBase tpb : addedSubList) { - if (! selectionHistory.contains(tpb)) { - selectionHistory.add(tpb); - } + TablePositionBase anchor = getAnchor(); + boolean cellSelectionEnabled = sm.isCellSelectionEnabled(); + + int addedSize = c.getAddedSize(); + List addedSubList = (List) c.getAddedSubList(); + + for (TablePositionBase tpb : addedSubList) { + if (! selectionHistory.contains(tpb)) { + selectionHistory.add(tpb); } - - // newest selection - if (addedSize > 0 && ! hasAnchor()) { - TablePositionBase tp = addedSubList.get(addedSize - 1); - setAnchor(tp); - } - - if (anchor != null && cellSelectionEnabled && ! selectionPathDeviated) { - // check if the selection is on the same row or column, - // otherwise set selectionPathDeviated to true - for (int i = 0; i < addedSize; i++) { - TablePositionBase tp = addedSubList.get(i); - if (anchor.getRow() != -1 && tp.getRow() != anchor.getRow() && tp.getColumn() != anchor.getColumn()) { - setSelectionPathDeviated(true); - break; - } + } + + // newest selection + if (addedSize > 0 && ! hasAnchor()) { + TablePositionBase tp = addedSubList.get(addedSize - 1); + setAnchor(tp); + } + + if (anchor != null && cellSelectionEnabled && ! selectionPathDeviated) { + // check if the selection is on the same row or column, + // otherwise set selectionPathDeviated to true + for (int i = 0; i < addedSize; i++) { + TablePositionBase tp = addedSubList.get(i); + if (anchor.getRow() != -1 && tp.getRow() != anchor.getRow() && tp.getColumn() != anchor.getColumn()) { + setSelectionPathDeviated(true); + break; } } } @@ -628,10 +626,8 @@ if (fm == null) return; if (sm.isCellSelectionEnabled()) { - updateCellVerticalSelection(-1, new Runnable() { - @Override public void run() { - getSelectionModel().selectAboveCell(); - } + updateCellVerticalSelection(-1, () -> { + getSelectionModel().selectAboveCell(); }); } else { if (isShiftDown && hasAnchor()) { @@ -656,10 +652,8 @@ if (fm == null) return; if (sm.isCellSelectionEnabled()) { - updateCellVerticalSelection(1, new Runnable() { - @Override public void run() { - getSelectionModel().selectBelowCell(); - } + updateCellVerticalSelection(1, () -> { + getSelectionModel().selectBelowCell(); }); } else { if (isShiftDown && hasAnchor()) { @@ -672,20 +666,16 @@ } protected void alsoSelectLeftCell() { - updateCellHorizontalSelection(-1, new Runnable() { - @Override public void run() { - getSelectionModel().selectLeftCell(); - } + updateCellHorizontalSelection(-1, () -> { + getSelectionModel().selectLeftCell(); }); onSelectLeftCell.run(); } protected void alsoSelectRightCell() { - updateCellHorizontalSelection(1, new Runnable() { - @Override public void run() { - getSelectionModel().selectRightCell(); - } + updateCellHorizontalSelection(1, () -> { + getSelectionModel().selectRightCell(); }); onSelectRightCell.run(); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java @@ -71,38 +71,31 @@ handleFocusChange(); // Register for change events - textField.focusedProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - handleFocusChange(); - } + textField.focusedProperty().addListener((observable, oldValue, newValue) -> { + handleFocusChange(); }); - focusOwnerListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Node oldValue, Node newValue) { - // RT-23699: The selection is now only affected when the TextField - // gains or loses focus within the Scene, and not when the whole - // stage becomes active or inactive. - if (newValue == textField) { - if (!focusGainedByMouseClick) { - textField.selectRange(textField.getLength(), 0); - } - } else { - textField.selectRange(0, 0); + focusOwnerListener = (observable, oldValue, newValue) -> { + // RT-23699: The selection is now only affected when the TextField + // gains or loses focus within the Scene, and not when the whole + // stage becomes active or inactive. + if (newValue == textField) { + if (!focusGainedByMouseClick) { + textField.selectRange(textField.getLength(), 0); } + } else { + textField.selectRange(0, 0); } }; final WeakChangeListener weakFocusOwnerListener = new WeakChangeListener(focusOwnerListener); - sceneListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Scene oldValue, Scene newValue) { - if (oldValue != null) { - oldValue.focusOwnerProperty().removeListener(weakFocusOwnerListener); - } - if (newValue != null) { - newValue.focusOwnerProperty().addListener(weakFocusOwnerListener); - } + sceneListener = (observable, oldValue, newValue) -> { + if (oldValue != null) { + oldValue.focusOwnerProperty().removeListener(weakFocusOwnerListener); + } + if (newValue != null) { + newValue.focusOwnerProperty().addListener(weakFocusOwnerListener); } }; textField.sceneProperty().addListener(new WeakChangeListener(sceneListener)); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java @@ -76,14 +76,12 @@ private BreakIterator charIterator; - private InvalidationListener textListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (!isEditing()) { - // Text changed, but not by user action - undoManager.reset(); - } - invalidateBidi(); + private InvalidationListener textListener = observable -> { + if (!isEditing()) { + // Text changed, but not by user action + undoManager.reset(); } + invalidateBidi(); }; /************************************************************************** diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableViewBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableViewBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableViewBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableViewBehavior.java @@ -83,20 +83,15 @@ * * *************************************************************************/ - private final ChangeListener> selectionModelListener = - new ChangeListener>() { - @Override - public void changed(ObservableValue> observable, - TreeTableView.TreeTableViewSelectionModel oldValue, - TreeTableView.TreeTableViewSelectionModel newValue) { - if (oldValue != null) { - oldValue.getSelectedCells().removeListener(weakSelectedCellsListener); - } - if (newValue != null) { - newValue.getSelectedCells().addListener(weakSelectedCellsListener); - } - } - }; + private final ChangeListener> selectionModelListener = + (observable, oldValue, newValue) -> { + if (oldValue != null) { + oldValue.getSelectedCells().removeListener(weakSelectedCellsListener); + } + if (newValue != null) { + newValue.getSelectedCells().addListener(weakSelectedCellsListener); + } + }; private final WeakChangeListener> weakSelectionModelListener = new WeakChangeListener>(selectionModelListener); @@ -221,11 +216,7 @@ } private void expandRow() { - Callback, Integer> getIndex = new Callback, Integer>() { - @Override public Integer call(TreeItem p) { - return getControl().getRow(p); - } - }; + Callback, Integer> getIndex = p -> getControl().getRow(p); TreeViewBehavior.expandRow(getControl().getSelectionModel(), getIndex); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeViewBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeViewBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeViewBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeViewBehavior.java @@ -230,26 +230,24 @@ private boolean selectionChanging = false; - private final ListChangeListener selectedIndicesListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - while (c.next()) { - MultipleSelectionModel> sm = getControl().getSelectionModel(); - - // there are no selected items, so lets clear out the anchor - if (! selectionChanging) { - if (sm.isEmpty()) { - setAnchor(-1); - } else if (! sm.isSelected(getAnchor())) { - setAnchor(-1); - } + private final ListChangeListener selectedIndicesListener = c -> { + while (c.next()) { + MultipleSelectionModel> sm = getControl().getSelectionModel(); + + // there are no selected items, so lets clear out the anchor + if (! selectionChanging) { + if (sm.isEmpty()) { + setAnchor(-1); + } else if (! sm.isSelected(getAnchor())) { + setAnchor(-1); } + } - int addedSize = c.getAddedSize(); - if (addedSize > 0 && ! hasAnchor()) { - List addedSubList = c.getAddedSubList(); - int index = addedSubList.get(addedSize - 1); - setAnchor(index); - } + int addedSize = c.getAddedSize(); + if (addedSize > 0 && ! hasAnchor()) { + List addedSubList = c.getAddedSubList(); + int index = addedSubList.get(addedSize - 1); + setAnchor(index); } } }; @@ -649,11 +647,7 @@ } private void expandRow() { - Callback, Integer> getIndex = new Callback, Integer>() { - @Override public Integer call(TreeItem p) { - return getControl().getRow(p); - } - }; + Callback, Integer> getIndex = p -> getControl().getRow(p); TreeViewBehavior.expandRow(getControl().getSelectionModel(), getIndex); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusBehavior.java @@ -90,76 +90,72 @@ * Don't allow the Node to handle a key event if it is in externalFocus mode. * the only keyboard actions allowed are the navigation keys...... */ - final EventDispatcher preemptiveEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher preemptiveEventDispatcher = (event, tail) -> { - // block the event from being passed down to children - if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { - if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { - if (isExternalFocus()) { - // - // don't let the behaviour leak any navigation keys when - // we're not in blocking mode.... - // - Object obj = event.getTarget(); + // block the event from being passed down to children + if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { + if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { + if (isExternalFocus()) { + // + // don't let the behaviour leak any navigation keys when + // we're not in blocking mode.... + // + Object obj = event.getTarget(); - switch (((KeyEvent)event).getCode()) { - case TAB : - if (((KeyEvent)event).isShiftDown()) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); - } - else { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); - } - event.consume(); - break; - case UP : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); - event.consume(); - break; - case DOWN : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); - event.consume(); - break; - case LEFT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); - event.consume(); - break; - case RIGHT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); - event.consume(); - break; - case ENTER : - setExternalFocus(false); - event.consume(); - break; - default : - // this'll kill mnemonics.... unless! - Scene s = tlNode.getScene(); - Event.fireEvent(s, event); - event.consume(); - break; - } + switch (((KeyEvent)event).getCode()) { + case TAB : + if (((KeyEvent)event).isShiftDown()) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); + } + else { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); + } + event.consume(); + break; + case UP : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); + event.consume(); + break; + case DOWN : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); + event.consume(); + break; + case LEFT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); + event.consume(); + break; + case RIGHT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + event.consume(); + break; + case ENTER : + setExternalFocus(false); + event.consume(); + break; + default : + // this'll kill mnemonics.... unless! + Scene s = tlNode.getScene(); + Event.fireEvent(s, event); + event.consume(); + break; } } } - - return event; } + + return event; }; - final EventDispatcher tlfEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher tlfEventDispatcher = (event, tail) -> { - if ((event instanceof KeyEvent)) { - if (isExternalFocus()) { - tail = tail.prepend(preemptiveEventDispatcher); - return tail.dispatchEvent(event); - } - } - return origEventDispatcher.dispatchEvent(event, tail); - } - }; + if ((event instanceof KeyEvent)) { + if (isExternalFocus()) { + tail = tail.prepend(preemptiveEventDispatcher); + return tail.dispatchEvent(event); + } + } + return origEventDispatcher.dispatchEvent(event, tail); + }; private Event postDispatchTidyup(Event event) { // block the event from being passed down to children @@ -193,31 +189,25 @@ } - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - postDispatchTidyup(e); - } + private final EventHandler keyEventListener = e -> { + postDispatchTidyup(e); }; /** * When a node gets focus, put it in external-focus mode. */ - final ChangeListener focusListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldVal, Boolean newVal) { - if (newVal && tlPopup != null) { - setExternalFocus(false); - } - else { - setExternalFocus(true); - } + final ChangeListener focusListener = (observable, oldVal, newVal) -> { + if (newVal && tlPopup != null) { + setExternalFocus(false); + } + else { + setExternalFocus(true); } }; - private final EventHandler mouseEventListener = new EventHandler() { - @Override public void handle(MouseEvent e) { - setExternalFocus(false); - } + private final EventHandler mouseEventListener = e -> { + setExternalFocus(false); }; private boolean externalFocus = true; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusComboBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusComboBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusComboBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusComboBehavior.java @@ -70,74 +70,70 @@ ** don't allow the Node handle a key event if it is in externalFocus mode. ** the only keyboard actions allowed are the navigation keys...... */ - final EventDispatcher preemptiveEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher preemptiveEventDispatcher = (event, tail) -> { - // block the event from being passed down to children - if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { - if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { - if (isExternalFocus()) { - // - // don't let the behaviour leak any navigation keys when - // we're not in blocking mode.... - // - Object obj = event.getTarget(); + // block the event from being passed down to children + if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { + if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { + if (isExternalFocus()) { + // + // don't let the behaviour leak any navigation keys when + // we're not in blocking mode.... + // + Object obj = event.getTarget(); - switch (((KeyEvent)event).getCode()) { - case TAB : - if (((KeyEvent)event).isShiftDown()) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); - } - else { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); - } - event.consume(); - break; - case UP : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); - event.consume(); - break; - case DOWN : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); - event.consume(); - break; - case LEFT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); - event.consume(); - break; - case RIGHT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); - event.consume(); - break; - case ENTER : - setExternalFocus(false); - origEventDispatcher.dispatchEvent(event, tail); - break; - default : - // this'll kill mnemonics.... unless! - Scene s = tlNode.getScene(); - Event.fireEvent(s, event); - event.consume(); - break; - } + switch (((KeyEvent)event).getCode()) { + case TAB : + if (((KeyEvent)event).isShiftDown()) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); + } + else { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); + } + event.consume(); + break; + case UP : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); + event.consume(); + break; + case DOWN : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); + event.consume(); + break; + case LEFT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); + event.consume(); + break; + case RIGHT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + event.consume(); + break; + case ENTER : + setExternalFocus(false); + origEventDispatcher.dispatchEvent(event, tail); + break; + default : + // this'll kill mnemonics.... unless! + Scene s = tlNode.getScene(); + Event.fireEvent(s, event); + event.consume(); + break; } } } - return event; } + return event; }; - final EventDispatcher tlfEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if ((event instanceof KeyEvent)) { - if (isExternalFocus()) { - tail = tail.prepend(preemptiveEventDispatcher); - return tail.dispatchEvent(event); - } - } - return origEventDispatcher.dispatchEvent(event, tail); - } - }; + final EventDispatcher tlfEventDispatcher = (event, tail) -> { + if ((event instanceof KeyEvent)) { + if (isExternalFocus()) { + tail = tail.prepend(preemptiveEventDispatcher); + return tail.dispatchEvent(event); + } + } + return origEventDispatcher.dispatchEvent(event, tail); + }; private Event postDispatchTidyup(Event event) { @@ -172,25 +168,19 @@ } - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - postDispatchTidyup(e); - } + private final EventHandler keyEventListener = e -> { + postDispatchTidyup(e); }; /* ** When a node gets focus, put it in external-focus mode. */ - final ChangeListener focusListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldVal, Boolean newVal) { - setExternalFocus(true); - } + final ChangeListener focusListener = (observable, oldVal, newVal) -> { + setExternalFocus(true); }; - private final EventHandler mouseEventListener = new EventHandler() { - @Override public void handle(MouseEvent e) { - setExternalFocus(false); - } + private final EventHandler mouseEventListener = e -> { + setExternalFocus(false); }; } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusListBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusListBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusListBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusListBehavior.java @@ -72,74 +72,70 @@ ** don't allow the Node handle a key event if it is in externalFocus mode. ** the only keyboard actions allowed are the navigation keys...... */ - final EventDispatcher preemptiveEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher preemptiveEventDispatcher = (event, tail) -> { - // block the event from being passed down to children - if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { - if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { - if (isExternalFocus()) { - // - // don't let the behaviour leak any navigation keys when - // we're not in blocking mode.... - // - Object obj = event.getTarget(); + // block the event from being passed down to children + if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { + if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { + if (isExternalFocus()) { + // + // don't let the behaviour leak any navigation keys when + // we're not in blocking mode.... + // + Object obj = event.getTarget(); - switch (((KeyEvent)event).getCode()) { - case TAB : - if (((KeyEvent)event).isShiftDown()) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); - } - else { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); - } - event.consume(); - break; - case UP : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); - event.consume(); - break; - case DOWN : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); - event.consume(); - break; - case LEFT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); - event.consume(); - break; - case RIGHT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); - event.consume(); - break; - case ENTER : - setExternalFocus(false); - event.consume(); - break; - default : - // this'll kill mnemonics.... unless! - Scene s = tlNode.getScene(); - Event.fireEvent(s, event); - event.consume(); - break; - } + switch (((KeyEvent)event).getCode()) { + case TAB : + if (((KeyEvent)event).isShiftDown()) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); + } + else { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); + } + event.consume(); + break; + case UP : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); + event.consume(); + break; + case DOWN : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); + event.consume(); + break; + case LEFT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); + event.consume(); + break; + case RIGHT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + event.consume(); + break; + case ENTER : + setExternalFocus(false); + event.consume(); + break; + default : + // this'll kill mnemonics.... unless! + Scene s = tlNode.getScene(); + Event.fireEvent(s, event); + event.consume(); + break; } } } - return event; } + return event; }; - final EventDispatcher tlfEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if ((event instanceof KeyEvent)) { - if (isExternalFocus()) { - tail = tail.prepend(preemptiveEventDispatcher); - return tail.dispatchEvent(event); - } - } - return origEventDispatcher.dispatchEvent(event, tail); - } - }; + final EventDispatcher tlfEventDispatcher = (event, tail) -> { + if ((event instanceof KeyEvent)) { + if (isExternalFocus()) { + tail = tail.prepend(preemptiveEventDispatcher); + return tail.dispatchEvent(event); + } + } + return origEventDispatcher.dispatchEvent(event, tail); + }; private Event postDispatchTidyup(Event event) { @@ -174,45 +170,39 @@ } - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - postDispatchTidyup(e); - } + private final EventHandler keyEventListener = e -> { + postDispatchTidyup(e); }; /* ** When a node gets focus, put it in external-focus mode. */ - final ChangeListener focusListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldVal, Boolean newVal) { + final ChangeListener focusListener = (observable, oldVal, newVal) -> { - if (newVal && tlPopup != null) { - setExternalFocus(false); - } - else { - boolean b = true; - if (tlNode != null) { - /* - ** if the ListView is actually the popup for a combobox then - ** we go straight to internal-focus - */ - Parent p = tlNode.getParent(); - if (p != null) { - if (ComboBoxPopupControl.COMBO_BOX_STYLE_CLASS.equals(p.getStyleClass().toString())) { - b = false; - } + if (newVal && tlPopup != null) { + setExternalFocus(false); + } + else { + boolean b = true; + if (tlNode != null) { + /* + ** if the ListView is actually the popup for a combobox then + ** we go straight to internal-focus + */ + Parent p = tlNode.getParent(); + if (p != null) { + if (ComboBoxPopupControl.COMBO_BOX_STYLE_CLASS.equals(p.getStyleClass().toString())) { + b = false; } } - - setExternalFocus(b); } + + setExternalFocus(b); } }; - private final EventHandler mouseEventListener = new EventHandler() { - @Override public void handle(MouseEvent e) { - setExternalFocus(false); - } + private final EventHandler mouseEventListener = e -> { + setExternalFocus(false); }; } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior.java @@ -91,145 +91,139 @@ ** don't allow the Node to handle a key event if it is in externalFocus mode. ** the only keyboard actions allowed are the navigation keys...... */ - final EventDispatcher preemptiveEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher preemptiveEventDispatcher = (event, tail) -> { - // block the event from being passed down to children - if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { - if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { - if (isExternalFocus()) { - // - // don't let the behaviour leak any navigation keys when - // we're not in blocking mode.... - // - Object obj = event.getTarget(); + // block the event from being passed down to children + if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { + if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { + if (isExternalFocus()) { + // + // don't let the behaviour leak any navigation keys when + // we're not in blocking mode.... + // + Object obj = event.getTarget(); - switch (((KeyEvent)event).getCode()) { - case TAB : - if (((KeyEvent)event).isShiftDown()) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); - } - else { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); - } - event.consume(); - break; - case UP : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); - event.consume(); - break; - case DOWN : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); - event.consume(); - break; - case LEFT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); - event.consume(); - break; - case RIGHT : - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); - event.consume(); - break; - case ENTER : - setExternalFocus(false); - event.consume(); - break; - default : - // this'll kill mnemonics.... unless! - Scene s = tlNode.getScene(); - Event.fireEvent(s, event); - event.consume(); - break; - } + switch (((KeyEvent)event).getCode()) { + case TAB : + if (((KeyEvent)event).isShiftDown()) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.PREVIOUS); + } + else { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.NEXT); + } + event.consume(); + break; + case UP : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.UP); + event.consume(); + break; + case DOWN : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.DOWN); + event.consume(); + break; + case LEFT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); + event.consume(); + break; + case RIGHT : + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + event.consume(); + break; + case ENTER : + setExternalFocus(false); + event.consume(); + break; + default : + // this'll kill mnemonics.... unless! + Scene s = tlNode.getScene(); + Event.fireEvent(s, event); + event.consume(); + break; } } } - return event; } + return event; }; - final EventDispatcher preemptivePopupEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher preemptivePopupEventDispatcher = (event, tail) -> { - // block the event from being passed down to children - if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { - if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { - if (!isExternalFocus()) { - // - // don't let the behaviour leak any navigation keys when - // we're not in blocking mode.... - // - Object obj = event.getTarget(); - switch (((KeyEvent)event).getCode()) { - case TAB : - case ENTER : + // block the event from being passed down to children + if (event instanceof KeyEvent && event.getEventType() == KeyEvent.KEY_PRESSED) { + if (!((KeyEvent)event).isMetaDown() && !((KeyEvent)event).isControlDown() && !((KeyEvent)event).isAltDown()) { + if (!isExternalFocus()) { + // + // don't let the behaviour leak any navigation keys when + // we're not in blocking mode.... + // + Object obj = event.getTarget(); + switch (((KeyEvent)event).getCode()) { + case TAB : + case ENTER : + event.consume(); + break; + case UP : + case DOWN : + break; + case LEFT : + if (obj instanceof Node) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); event.consume(); - break; - case UP : - case DOWN : - break; - case LEFT : - if (obj instanceof Node) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); + } + else if (obj instanceof Scene) { + Node node = ((Scene)obj).getFocusOwner(); + if (node != null) { + node.impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); event.consume(); } - else if (obj instanceof Scene) { - Node node = ((Scene)obj).getFocusOwner(); - if (node != null) { - node.impl_traverse(com.sun.javafx.scene.traversal.Direction.LEFT); - event.consume(); - } - } - break; - case RIGHT : - if (obj instanceof Node) { - ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + } + break; + case RIGHT : + if (obj instanceof Node) { + ((Node)obj).impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); + event.consume(); + } + else if (obj instanceof Scene) { + Node node = ((Scene)obj).getFocusOwner(); + if (node != null) { + node.impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); event.consume(); } - else if (obj instanceof Scene) { - Node node = ((Scene)obj).getFocusOwner(); - if (node != null) { - node.impl_traverse(com.sun.javafx.scene.traversal.Direction.RIGHT); - event.consume(); - } - } - break; + } + break; - default : - // this'll kill mnemonics.... unless! - Scene s = null; - if (tlNode != null) { - s = tlNode.getScene(); - Event.fireEvent(s, event); - } - event.consume(); - break; - } + default : + // this'll kill mnemonics.... unless! + Scene s = null; + if (tlNode != null) { + s = tlNode.getScene(); + Event.fireEvent(s, event); + } + event.consume(); + break; } } } - return event; } + return event; }; - final EventDispatcher tlfEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { + final EventDispatcher tlfEventDispatcher = (event, tail) -> { - if ((event instanceof KeyEvent)) { + if ((event instanceof KeyEvent)) { - if (isExternalFocus()) { - tail = tail.prepend(preemptiveEventDispatcher); - return tail.dispatchEvent(event); - } - else { - tail = tail.prepend(preemptivePopupEventDispatcher); - tail = tail.prepend(origEventDispatcher); - return tail.dispatchEvent(event); - } - } - return origEventDispatcher.dispatchEvent(event, tail); - } - }; + if (isExternalFocus()) { + tail = tail.prepend(preemptiveEventDispatcher); + return tail.dispatchEvent(event); + } + else { + tail = tail.prepend(preemptivePopupEventDispatcher); + tail = tail.prepend(origEventDispatcher); + return tail.dispatchEvent(event); + } + } + return origEventDispatcher.dispatchEvent(event, tail); + }; private Event postDispatchTidyup(Event event) { @@ -265,24 +259,18 @@ } - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - postDispatchTidyup(e); - } + private final EventHandler keyEventListener = e -> { + postDispatchTidyup(e); }; /* ** When a node gets focus, put it in external-focus mode. */ - final ChangeListener focusListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldVal, Boolean newVal) { - } + final ChangeListener focusListener = (observable, oldVal, newVal) -> { }; - private final EventHandler mouseEventListener = new EventHandler() { - @Override public void handle(MouseEvent e) { - setExternalFocus(false); - } + private final EventHandler mouseEventListener = e -> { + setExternalFocus(false); }; } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/AccordionSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/AccordionSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/AccordionSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/AccordionSkin.java @@ -57,25 +57,23 @@ public AccordionSkin(final Accordion accordion) { super(accordion, new AccordionBehavior(accordion)); - accordion.getPanes().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - if (firstTitledPane != null) { - firstTitledPane.getStyleClass().remove("first-titled-pane"); - } - if (!accordion.getPanes().isEmpty()) { - firstTitledPane = accordion.getPanes().get(0); - firstTitledPane.getStyleClass().add("first-titled-pane"); - } - // TODO there may be a more efficient way to keep these in sync - getChildren().setAll(accordion.getPanes()); - while (c.next()) { - removeTitledPaneListeners(c.getRemoved()); - initTitledPaneListeners(c.getAddedSubList()); - } + accordion.getPanes().addListener((ListChangeListener) c -> { + if (firstTitledPane != null) { + firstTitledPane.getStyleClass().remove("first-titled-pane"); + } + if (!accordion.getPanes().isEmpty()) { + firstTitledPane = accordion.getPanes().get(0); + firstTitledPane.getStyleClass().add("first-titled-pane"); + } + // TODO there may be a more efficient way to keep these in sync + getChildren().setAll(accordion.getPanes()); + while (c.next()) { + removeTitledPaneListeners(c.getRemoved()); + initTitledPaneListeners(c.getAddedSubList()); + } - // added to resolve RT-32787 - forceRelayout = true; - } + // added to resolve RT-32787 + forceRelayout = true; }); if (!accordion.getPanes().isEmpty()) { @@ -230,22 +228,20 @@ } private ChangeListener expandedPropertyListener(final TitledPane tp) { - return new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean wasExpanded, Boolean expanded) { - previousPane = expandedPane; - final Accordion accordion = getSkinnable(); - if (expanded) { - if (expandedPane != null) { - expandedPane.setExpanded(false); - } - if (tp != null) { - accordion.setExpandedPane(tp); - } - expandedPane = accordion.getExpandedPane(); - } else { - expandedPane = null; - accordion.setExpandedPane(null); + return (observable, wasExpanded, expanded) -> { + previousPane = expandedPane; + final Accordion accordion = getSkinnable(); + if (expanded) { + if (expandedPane != null) { + expandedPane.setExpanded(false); } + if (tp != null) { + accordion.setExpandedPane(tp); + } + expandedPane = accordion.getExpandedPane(); + } else { + expandedPane = null; + accordion.setExpandedPane(null); } }; } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/BehaviorSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/BehaviorSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/BehaviorSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/BehaviorSkinBase.java @@ -194,11 +194,9 @@ */ protected final void registerChangeListener(ObservableValue property, String reference) { if (changeListenerHandler == null) { - changeListenerHandler = new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String p) { - handleControlPropertyChanged(p); - return null; - } + changeListenerHandler = new MultiplePropertyChangeListenerHandler(p -> { + handleControlPropertyChanged(p); + return null; }); } changeListenerHandler.registerChangeListener(property, reference); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ButtonSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ButtonSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ButtonSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ButtonSkin.java @@ -97,21 +97,17 @@ } } - Runnable defaultButtonRunnable = new Runnable() { - public void run() { - if (getSkinnable().getScene() != null && getSkinnable().impl_isTreeVisible() && !getSkinnable().isDisabled()) { - getSkinnable().fire(); - } - } - }; + Runnable defaultButtonRunnable = () -> { + if (getSkinnable().getScene() != null && getSkinnable().impl_isTreeVisible() && !getSkinnable().isDisabled()) { + getSkinnable().fire(); + } + }; - Runnable cancelButtonRunnable = new Runnable() { - public void run() { - if (getSkinnable().getScene() != null && getSkinnable().impl_isTreeVisible() && !getSkinnable().isDisabled()) { - getSkinnable().fire(); - } - } - }; + Runnable cancelButtonRunnable = () -> { + if (getSkinnable().getScene() != null && getSkinnable().impl_isTreeVisible() && !getSkinnable().isDisabled()) { + getSkinnable().fire(); + } + }; private KeyCodeCombination defaultAcceleratorKeyCodeCombination; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ChoiceBoxSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ChoiceBoxSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ChoiceBoxSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ChoiceBoxSkin.java @@ -131,18 +131,14 @@ // When popup is hidden by autohide - the ChoiceBox Showing property needs // to be updated. So we listen to when autohide happens. Calling hide() // there after causes Showing to be set to false - popup.setOnAutoHide(new EventHandler() { - @Override public void handle(Event event) { - getSkinnable().hide(); - } + popup.setOnAutoHide(event -> { + getSkinnable().hide(); }); // fix RT-14469 : When tab shifts ChoiceBox focus to another control, // its popup should hide. - getSkinnable().focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (!newValue) { - getSkinnable().hide(); - } + getSkinnable().focusedProperty().addListener((observable, oldValue, newValue) -> { + if (!newValue) { + getSkinnable().hide(); } }); // This is used as a way of accessing the context menu within the ChoiceBox. @@ -263,13 +259,11 @@ final RadioMenuItem item = new RadioMenuItem(displayString); item.setId("choice-box-menu-item"); item.setToggleGroup(toggleGroup); - item.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - if (selectionModel == null) return; - int index = getSkinnable().getItems().indexOf(o); - selectionModel.select(index); - item.setSelected(true); - } + item.setOnAction(e -> { + if (selectionModel == null) return; + int index = getSkinnable().getItems().indexOf(o); + selectionModel.select(index); + item.setSelected(true); }); popupItem = item; } @@ -298,10 +292,8 @@ } } - private InvalidationListener selectionChangeListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateSelection(); - } + private InvalidationListener selectionChangeListener = observable -> { + updateSelection(); }; private void updateSelection() { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPalette.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPalette.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPalette.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPalette.java @@ -44,6 +44,7 @@ import javafx.scene.control.PopupControl; import javafx.scene.control.Separator; import javafx.scene.control.Tooltip; +import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; @@ -101,43 +102,29 @@ @Override public void handle(ActionEvent t) { if (customColorDialog == null) { customColorDialog = new CustomColorDialog(popupControl); - customColorDialog.customColorProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, - Color t, Color t1) { - colorPicker.setValue(customColorDialog.customColorProperty().get()); - } + customColorDialog.customColorProperty().addListener((ov, t1, t2) -> { + colorPicker.setValue(customColorDialog.customColorProperty().get()); }); - customColorDialog.setOnSave(new Runnable() { - - @Override - public void run() { - Color customColor = customColorDialog.customColorProperty().get(); - ColorSquare cs = new ColorSquare(customColor, true); - customSquares.add(cs); - buildCustomColors(); - colorPicker.getCustomColors().add(customColor); - updateSelection(customColor); - Event.fireEvent(colorPicker, new ActionEvent()); - colorPicker.hide(); - } + customColorDialog.setOnSave(() -> { + Color customColor = customColorDialog.customColorProperty().get(); + ColorSquare cs = new ColorSquare(customColor, true); + customSquares.add(cs); + buildCustomColors(); + colorPicker.getCustomColors().add(customColor); + updateSelection(customColor); + Event.fireEvent(colorPicker, new ActionEvent()); + colorPicker.hide(); }); - customColorDialog.setOnUse(new Runnable() { - - @Override - public void run() { - Event.fireEvent(colorPicker, new ActionEvent()); - colorPicker.hide(); - } + customColorDialog.setOnUse(() -> { + Event.fireEvent(colorPicker, new ActionEvent()); + colorPicker.hide(); }); } customColorDialog.setCurrentColor(colorPicker.valueProperty().get()); if (popupControl != null) popupControl.setAutoHide(false); customColorDialog.show(); - customColorDialog.setOnHidden(new EventHandler() { - - @Override public void handle(WindowEvent event) { - if (popupControl != null) popupControl.setAutoHide(true); - } + customColorDialog.setOnHidden(event -> { + if (popupControl != null) popupControl.setAutoHide(true); }); } }); @@ -206,13 +193,11 @@ customColorGrid.setManaged(true); if (contextMenu == null) { MenuItem item = new MenuItem(getString("removeColor")); - item.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - ColorSquare square = (ColorSquare)contextMenu.getOwnerNode(); - colorPicker.getCustomColors().remove(square.rectangle.getFill()); - customSquares.remove(square); - buildCustomColors(); - } + item.setOnAction(e -> { + ColorSquare square = (ColorSquare)contextMenu.getOwnerNode(); + colorPicker.getCustomColors().remove(square.rectangle.getFill()); + customSquares.remove(square); + buildCustomColors(); }); contextMenu = new ContextMenu(item); } @@ -234,40 +219,38 @@ } private void initNavigation() { - setOnKeyPressed(new EventHandler() { - @Override public void handle(KeyEvent ke) { - switch (ke.getCode()) { - case LEFT: - if (getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT) { - processRightKey(ke); - } else { - processLeftKey(ke); - } - ke.consume(); - break; - case RIGHT: - if (getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT) { - processLeftKey(ke); - } else { - processRightKey(ke); - } - ke.consume(); - break; - case UP: - processUpKey(ke); - ke.consume(); - break; - case DOWN: - processDownKey(ke); - ke.consume(); - break; - case SPACE: - case ENTER: - processSelectKey(ke); - ke.consume(); - break; - default: // no-op - } + setOnKeyPressed(ke -> { + switch (ke.getCode()) { + case LEFT: + if (getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT) { + processRightKey(ke); + } else { + processLeftKey(ke); + } + ke.consume(); + break; + case RIGHT: + if (getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT) { + processLeftKey(ke); + } else { + processRightKey(ke); + } + ke.consume(); + break; + case UP: + processUpKey(ke); + ke.consume(); + break; + case DOWN: + processDownKey(ke); + ke.consume(); + break; + case SPACE: + case ENTER: + processSelectKey(ke); + ke.consume(); + break; + default: // no-op } }); } @@ -448,40 +431,34 @@ rectangle.getStyleClass().add("color-rect"); - addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (!dragDetected && event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 1) { - if (!isEmpty) { - Color fill = (Color) rectangle.getFill(); - colorPicker.setValue(fill); - colorPicker.fireEvent(new ActionEvent()); - updateSelection(fill); - event.consume(); - } - colorPicker.hide(); - } else if (event.getButton() == MouseButton.SECONDARY || - event.getButton() == MouseButton.MIDDLE) { - if (isCustom && contextMenu != null) { - if (!contextMenu.isShowing()) { - contextMenu.show(ColorSquare.this, Side.RIGHT, 0, 0); - Utils.addMnemonics(contextMenu, ColorSquare.this.getScene(), colorPicker.impl_isShowMnemonics()); - } else { - contextMenu.hide(); - Utils.removeMnemonics(contextMenu, ColorSquare.this.getScene()); - } + addEventHandler(MouseEvent.MOUSE_RELEASED, event -> { + if (!dragDetected && event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 1) { + if (!isEmpty) { + Color fill = (Color) rectangle.getFill(); + colorPicker.setValue(fill); + colorPicker.fireEvent(new ActionEvent()); + updateSelection(fill); + event.consume(); + } + colorPicker.hide(); + } else if (event.getButton() == MouseButton.SECONDARY || + event.getButton() == MouseButton.MIDDLE) { + if (isCustom && contextMenu != null) { + if (!contextMenu.isShowing()) { + contextMenu.show(ColorSquare.this, Side.RIGHT, 0, 0); + Utils.addMnemonics(contextMenu, ColorSquare.this.getScene(), colorPicker.impl_isShowMnemonics()); + } else { + contextMenu.hide(); + Utils.removeMnemonics(contextMenu, ColorSquare.this.getScene()); } } } }); - addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHandler() { - @Override public void handle(MouseEvent event) { - setFocusedSquare(ColorSquare.this); - } + addEventHandler(MouseEvent.MOUSE_ENTERED, event -> { + setFocusedSquare(ColorSquare.this); }); - addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler() { - @Override public void handle(MouseEvent event) { - setFocusedSquare(null); - } + addEventHandler(MouseEvent.MOUSE_EXITED, event -> { + setFocusedSquare(null); }); getChildren().add(rectangle); } @@ -549,38 +526,32 @@ rowIndex++; } } - setOnMouseDragged(new EventHandler() { - @Override - public void handle(MouseEvent t) { - if (!dragDetected) { - dragDetected = true; - mouseDragColor = colorPicker.getValue(); - } - int xIndex = (int)(t.getX()/16.0); - int yIndex = (int)(t.getY()/16.0); - int index = xIndex + yIndex*12; - if (index < NUM_OF_COLUMNS*NUM_OF_ROWS) { - colorPicker.setValue((Color) squares.get(index).rectangle.getFill()); - updateSelection(colorPicker.getValue()); + setOnMouseDragged(t -> { + if (!dragDetected) { + dragDetected = true; + mouseDragColor = colorPicker.getValue(); + } + int xIndex = (int)(t.getX()/16.0); + int yIndex = (int)(t.getY()/16.0); + int index = xIndex + yIndex*12; + if (index < NUM_OF_COLUMNS*NUM_OF_ROWS) { + colorPicker.setValue((Color) squares.get(index).rectangle.getFill()); + updateSelection(colorPicker.getValue()); + } + }); + addEventHandler(MouseEvent.MOUSE_RELEASED, t -> { + if(colorPickerGrid.getBoundsInLocal().contains(t.getX(), t.getY())) { + updateSelection(colorPicker.getValue()); + colorPicker.fireEvent(new ActionEvent()); + colorPicker.hide(); + } else { + // restore color as mouse release happened outside the grid. + if (mouseDragColor != null) { + colorPicker.setValue(mouseDragColor); + updateSelection(mouseDragColor); } } - }); - addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override - public void handle(MouseEvent t) { - if(colorPickerGrid.getBoundsInLocal().contains(t.getX(), t.getY())) { - updateSelection(colorPicker.getValue()); - colorPicker.fireEvent(new ActionEvent()); - colorPicker.hide(); - } else { - // restore color as mouse release happened outside the grid. - if (mouseDragColor != null) { - colorPicker.setValue(mouseDragColor); - updateSelection(mouseDragColor); - } - } - dragDetected = false; - } + dragDetected = false; }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPickerSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPickerSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPickerSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ColorPickerSkin.java @@ -189,11 +189,8 @@ colorRect.getStyleClass().add("picker-color-rect"); updateColor(); - colorPicker.addEventHandler(ActionEvent.ACTION, new EventHandler() { - @Override - public void handle(ActionEvent t) { - updateColor(); - } + colorPicker.addEventHandler(ActionEvent.ACTION, t -> { + updateColor(); }); pickerColorBox.getChildren().add(colorRect); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxBaseSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxBaseSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxBaseSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxBaseSkin.java @@ -85,11 +85,9 @@ getChildren().add(arrowButton); // When ComboBoxBase focus shifts to another node, it should hide. - getSkinnable().focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (!newValue) { - focusLost(); - } + getSkinnable().focusedProperty().addListener((observable, oldValue, newValue) -> { + if (!newValue) { + focusLost(); } }); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java @@ -136,59 +136,49 @@ updateButtonCell(); // move fake focus in to the textfield if the comboBox is editable - comboBox.focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean hasFocus) { - if (comboBox.isEditable()) { - // Fix for the regression noted in a comment in RT-29885. - ((FakeFocusTextField)textField).setFakeFocus(hasFocus); - } + comboBox.focusedProperty().addListener((ov, t, hasFocus) -> { + if (comboBox.isEditable()) { + // Fix for the regression noted in a comment in RT-29885. + ((FakeFocusTextField)textField).setFakeFocus(hasFocus); } }); - comboBox.addEventFilter(KeyEvent.ANY, new EventHandler() { - @Override public void handle(KeyEvent ke) { - if (textField == null) { - handleKeyEvent(ke, false); - } else { - // This prevents a stack overflow from our rebroadcasting of the - // event to the textfield that occurs in the final else statement - // of the conditions below. - if (ke.getTarget().equals(textField)) return; + comboBox.addEventFilter(KeyEvent.ANY, ke -> { + if (textField == null) { + handleKeyEvent(ke, false); + } else { + // This prevents a stack overflow from our rebroadcasting of the + // event to the textfield that occurs in the final else statement + // of the conditions below. + if (ke.getTarget().equals(textField)) return; - // Fix for the regression noted in a comment in RT-29885. - // This forwards the event down into the TextField when - // the key event is actually received by the ComboBox. - textField.fireEvent(ke.copyFor(textField, textField)); - ke.consume(); - } + // Fix for the regression noted in a comment in RT-29885. + // This forwards the event down into the TextField when + // the key event is actually received by the ComboBox. + textField.fireEvent(ke.copyFor(textField, textField)); + ke.consume(); } }); if (textField != null) { - textField.addEventFilter(KeyEvent.ANY, new EventHandler() { - @Override public void handle(KeyEvent ke) { - if (textField == null) return; - handleKeyEvent(ke, true); - } + textField.addEventFilter(KeyEvent.ANY, ke -> { + if (textField == null) return; + handleKeyEvent(ke, true); }); } // Fix for RT-31093 - drag events from the textfield were not surfacing // properly for the ComboBox. if (textField != null) { - textField.addEventFilter(MouseEvent.DRAG_DETECTED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (event.getTarget().equals(comboBox)) return; + textField.addEventFilter(MouseEvent.DRAG_DETECTED, event -> { + if (event.getTarget().equals(comboBox)) return; + comboBox.fireEvent(event.copyFor(comboBox, comboBox)); + event.consume(); + }); + textField.addEventFilter(DragEvent.ANY, event -> { + if (event.getTarget().equals(comboBox)) return; comboBox.fireEvent(event.copyFor(comboBox, comboBox)); event.consume(); - } - }); - textField.addEventFilter(DragEvent.ANY, new EventHandler() { - @Override public void handle(DragEvent event) { - if (event.getTarget().equals(comboBox)) return; - comboBox.fireEvent(event.copyFor(comboBox, comboBox)); - event.consume(); - } }); } @@ -407,23 +397,21 @@ initialTextFieldValue = textField.getText(); // End of fix (see updateDisplayNode below for the related code) - textField.focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean hasFocus) { - if (! comboBox.isEditable()) return; + textField.focusedProperty().addListener((ov, t, hasFocus) -> { + if (! comboBox.isEditable()) return; - // Fix for RT-29885 - comboBox.getProperties().put("FOCUSED", hasFocus); - // --- end of RT-29885 + // Fix for RT-29885 + comboBox.getProperties().put("FOCUSED", hasFocus); + // --- end of RT-29885 - // RT-21454 starts here - if (! hasFocus) { - setTextFromTextFieldIntoComboBoxValue(); - pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, false); - } else { - pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, true); - } - // --- end of RT-21454 + // RT-21454 starts here + if (! hasFocus) { + setTextFromTextFieldIntoComboBoxValue(); + pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, false); + } else { + pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, true); } + // --- end of RT-21454 }); return textField; @@ -599,52 +587,44 @@ _listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); _listView.setFocusTraversable(false); - _listView.getSelectionModel().selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable o) { - if (listSelectionLock) return; - int index = listView.getSelectionModel().getSelectedIndex(); - comboBox.getSelectionModel().select(index); - updateDisplayNode(); - comboBox.accSendNotification(Attribute.TITLE); - } - }); + _listView.getSelectionModel().selectedIndexProperty().addListener(o -> { + if (listSelectionLock) return; + int index = listView.getSelectionModel().getSelectedIndex(); + comboBox.getSelectionModel().select(index); + updateDisplayNode(); + comboBox.accSendNotification(Attribute.TITLE); + }); - comboBox.getSelectionModel().selectedItemProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable o) { - listViewSelectionDirty = true; - } + comboBox.getSelectionModel().selectedItemProperty().addListener(o -> { + listViewSelectionDirty = true; }); - _listView.addEventFilter(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override public void handle(MouseEvent t) { - // RT-18672: Without checking if the user is clicking in the - // scrollbar area of the ListView, the comboBox will hide. Therefore, - // we add the check below to prevent this from happening. - EventTarget target = t.getTarget(); - if (target instanceof Parent) { - List s = ((Parent) target).getStyleClass(); - if (s.contains("thumb") - || s.contains("track") - || s.contains("decrement-arrow") - || s.contains("increment-arrow")) { - return; - } + _listView.addEventFilter(MouseEvent.MOUSE_RELEASED, t -> { + // RT-18672: Without checking if the user is clicking in the + // scrollbar area of the ListView, the comboBox will hide. Therefore, + // we add the check below to prevent this from happening. + EventTarget target = t.getTarget(); + if (target instanceof Parent) { + List s = ((Parent) target).getStyleClass(); + if (s.contains("thumb") + || s.contains("track") + || s.contains("decrement-arrow") + || s.contains("increment-arrow")) { + return; } - - if (isHideOnClickEnabled()) { - comboBox.hide(); - } + } + + if (isHideOnClickEnabled()) { + comboBox.hide(); } }); - _listView.setOnKeyPressed(new EventHandler() { - @Override public void handle(KeyEvent t) { - // TODO move to behavior, when (or if) this class becomes a SkinBase - if (t.getCode() == KeyCode.ENTER || - t.getCode() == KeyCode.SPACE || - t.getCode() == KeyCode.ESCAPE) { - comboBox.hide(); - } + _listView.setOnKeyPressed(t -> { + // TODO move to behavior, when (or if) this class becomes a SkinBase + if (t.getCode() == KeyCode.ENTER || + t.getCode() == KeyCode.SPACE || + t.getCode() == KeyCode.ESCAPE) { + comboBox.hide(); } }); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java @@ -119,27 +119,20 @@ popup.setAutoHide(true); popup.setAutoFix(true); popup.setHideOnEscape(true); - popup.setOnAutoHide(new EventHandler() { - @Override - public void handle(Event e) { - getBehavior().onAutoHide(); - } + popup.setOnAutoHide(e -> { + getBehavior().onAutoHide(); }); - popup.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() { - @Override public void handle(MouseEvent t) { - // RT-18529: We listen to mouse input that is received by the popup - // but that is not consumed, and assume that this is due to the mouse - // clicking outside of the node, but in areas such as the - // dropshadow. - getBehavior().onAutoHide(); - } + popup.addEventHandler(MouseEvent.MOUSE_CLICKED, t -> { + // RT-18529: We listen to mouse input that is received by the popup + // but that is not consumed, and assume that this is due to the mouse + // clicking outside of the node, but in areas such as the + // dropshadow. + getBehavior().onAutoHide(); }); // Fix for RT-21207 - InvalidationListener layoutPosListener = new InvalidationListener() { - @Override public void invalidated(Observable o) { - reconfigurePopup(); - } + InvalidationListener layoutPosListener = o -> { + reconfigurePopup(); }; getSkinnable().layoutXProperty().addListener(layoutPosListener); getSkinnable().layoutYProperty().addListener(layoutPosListener); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java @@ -98,10 +98,8 @@ private int currentFocusedIndex = -1; private boolean itemsDirty = true; - private InvalidationListener popupShowingListener = new InvalidationListener() { - @Override public void invalidated(Observable arg0) { - updateItems(); - } + private InvalidationListener popupShowingListener = arg0 -> { + updateItems(); }; private WeakInvalidationListener weakPopupShowingListener = new WeakInvalidationListener(popupShowingListener); @@ -418,33 +416,29 @@ // but when the user first hits the up or down arrow keys, the focus // is transferred to the first or last item respectively. Once this // happens, it is up to the menu items to navigate between themselves. - contextMenu.focusedProperty().addListener(new ChangeListener(){ - @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (newValue) { - // initialize the focused index for keyboard navigation. - currentFocusedIndex = -1; - requestFocus(); - } + contextMenu.focusedProperty().addListener((observable, oldValue, newValue) -> { + if (newValue) { + // initialize the focused index for keyboard navigation. + currentFocusedIndex = -1; + requestFocus(); } }); // RT-19624 calling requestFocus inside layout was casuing repeated layouts. - contextMenu.addEventHandler(Menu.ON_SHOWN, new EventHandler() { - @Override public void handle(Event event) { - for (Node child : itemsContainer.getChildren()) { - if (child instanceof MenuItemContainer) { - final MenuItem item = ((MenuItemContainer)child).item; - // When the choiceBox popup is shown, if this menu item is selected - // do a requestFocus so CSS kicks in and the item is highlighted. - if ("choice-box-menu-item".equals(item.getId())) { - if (((RadioMenuItem)item).isSelected()) { - child.requestFocus(); - break; - } + contextMenu.addEventHandler(Menu.ON_SHOWN, event -> { + for (Node child : itemsContainer.getChildren()) { + if (child instanceof MenuItemContainer) { + final MenuItem item = ((MenuItemContainer)child).item; + // When the choiceBox popup is shown, if this menu item is selected + // do a requestFocus so CSS kicks in and the item is highlighted. + if ("choice-box-menu-item".equals(item.getId())) { + if (((RadioMenuItem)item).isSelected()) { + child.requestFocus(); + break; } } + } - } } }); @@ -527,45 +521,43 @@ } }); - addEventHandler(ScrollEvent.SCROLL, new EventHandler() { - @Override public void handle(ScrollEvent event) { - /* - * we'll only scroll if the arrows are visible in the direction - * that we're going, otherwise we go into empty space. - */ - final double textDeltaY = event.getTextDeltaY(); - final double deltaY = event.getDeltaY(); - if ((downArrow.isVisible() && (textDeltaY < 0.0 || deltaY < 0.0)) || - (upArrow.isVisible() && (textDeltaY > 0.0 || deltaY > 0.0))) { + addEventHandler(ScrollEvent.SCROLL, event -> { + /* + * we'll only scroll if the arrows are visible in the direction + * that we're going, otherwise we go into empty space. + */ + final double textDeltaY = event.getTextDeltaY(); + final double deltaY = event.getDeltaY(); + if ((downArrow.isVisible() && (textDeltaY < 0.0 || deltaY < 0.0)) || + (upArrow.isVisible() && (textDeltaY > 0.0 || deltaY > 0.0))) { - switch(event.getTextDeltaYUnits()) { - case LINES: - /* - ** scroll lines, use the row height of selected row, - ** or row 0 if none selected - */ - int focusedIndex = findFocusedIndex(); - if (focusedIndex == -1) { - focusedIndex = 0; - } - double rowHeight = itemsContainer.getChildren().get(focusedIndex).prefHeight(-1); - scroll(textDeltaY * rowHeight); - break; - case PAGES: - /* - ** page scroll, scroll the menu height - */ - scroll(textDeltaY * itemsContainer.getHeight()); - break; - case NONE: - /* - ** pixel scroll - */ - scroll(deltaY); - break; - } - event.consume(); + switch(event.getTextDeltaYUnits()) { + case LINES: + /* + ** scroll lines, use the row height of selected row, + ** or row 0 if none selected + */ + int focusedIndex = findFocusedIndex(); + if (focusedIndex == -1) { + focusedIndex = 0; + } + double rowHeight = itemsContainer.getChildren().get(focusedIndex).prefHeight(-1); + scroll(textDeltaY * rowHeight); + break; + case PAGES: + /* + ** page scroll, scroll the menu height + */ + scroll(textDeltaY * itemsContainer.getHeight()); + break; + case NONE: + /* + ** pixel scroll + */ + scroll(deltaY); + break; } + event.consume(); } }); } @@ -734,22 +726,20 @@ private void setUpBinds() { updateMenuShowingListeners(contextMenu.getItems()); - contextMenu.getItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - // Add listeners to the showing property of all menus that have - // been added, and remove listeners from menus that have been removed - // FIXME this is temporary - we should be adding and removing - // listeners such that they use the one listener defined above - // - but that can't be done until we have the bean in the - // ObservableValue - while (c.next()) { - updateMenuShowingListeners(c.getAddedSubList()); - } + contextMenu.getItems().addListener((ListChangeListener) c -> { + // Add listeners to the showing property of all menus that have + // been added, and remove listeners from menus that have been removed + // FIXME this is temporary - we should be adding and removing + // listeners such that they use the one listener defined above + // - but that can't be done until we have the bean in the + // ObservableValue + while (c.next()) { + updateMenuShowingListeners(c.getAddedSubList()); + } - // Listener to items in PopupMenu to update items in PopupMenuContent - itemsDirty = true; - updateItems(); // RT-29761 - } + // Listener to items in PopupMenu to update items in PopupMenuContent + itemsDirty = true; + updateItems(); // RT-29761 }); } @@ -757,26 +747,20 @@ for (MenuItem item : added) { if (item instanceof Menu) { final Menu menuItem = (Menu) item; - menuItem.showingProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean wasShowing, Boolean isShowing) { - if (wasShowing && ! isShowing) { - // hide the submenu popup - hideSubmenu(); - } else if (! wasShowing && isShowing) { - // show the submenu popup - showSubmenu(menuItem); - } + menuItem.showingProperty().addListener((observable, wasShowing, isShowing) -> { + if (wasShowing && ! isShowing) { + // hide the submenu popup + hideSubmenu(); + } else if (! wasShowing && isShowing) { + // show the submenu popup + showSubmenu(menuItem); } }); } // listen to menu items's visible property. - item.visibleProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - // re layout as item's visibility changed - requestLayout(); - } + item.visibleProperty().addListener((observable, oldValue, newValue) -> { + // re layout as item's visibility changed + requestLayout(); }); } } @@ -958,18 +942,14 @@ upDownArrow.setMouseTransparent(true); upDownArrow.getStyleClass().setAll(isUp() ? "menu-up-arrow" : "menu-down-arrow"); // setMaxWidth(Math.max(upDownArrow.prefWidth(-1), getWidth())); - addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHandler() { - @Override public void handle(MouseEvent me) { - if (scrollTimeline != null && (scrollTimeline.getStatus() != Status.STOPPED)) { - return; - } - startTimeline(); + addEventHandler(MouseEvent.MOUSE_ENTERED, me -> { + if (scrollTimeline != null && (scrollTimeline.getStatus() != Status.STOPPED)) { + return; } + startTimeline(); }); - addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler() { - @Override public void handle(MouseEvent me) { - stopTimeline(); - } + addEventHandler(MouseEvent.MOUSE_EXITED, me -> { + stopTimeline(); }); setVisible(false); setManaged(false); @@ -1003,11 +983,9 @@ scrollTimeline.setCycleCount(Timeline.INDEFINITE); KeyFrame kf = new KeyFrame( Duration.millis(60), - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { adjust(); } - } ); scrollTimeline.getKeyFrames().clear(); scrollTimeline.getKeyFrames().add(kf); @@ -1035,11 +1013,9 @@ private Node right; private final MultiplePropertyChangeListenerHandler listener = - new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String param) { - handlePropertyChanged(param); - return null; - } + new MultiplePropertyChangeListenerHandler(param -> { + handlePropertyChanged(param); + return null; }); private EventHandler mouseEnteredEventHandler; @@ -1090,21 +1066,18 @@ listener.registerChangeListener(item.graphicProperty(), "GRAPHIC"); - addEventHandler(ActionEvent.ACTION, new EventHandler() { - @Override - public void handle(ActionEvent e) { - if (item instanceof Menu) { - final Menu menu = (Menu) item; - if (openSubmenu == menu && submenu.isShowing()) return; - if (openSubmenu != null) { - hideSubmenu(); - } + addEventHandler(ActionEvent.ACTION, e -> { + if (item instanceof Menu) { + final Menu menu = (Menu) item; + if (openSubmenu == menu && submenu.isShowing()) return; + if (openSubmenu != null) { + hideSubmenu(); + } - selectedBackground = MenuItemContainer.this; - showMenu(menu); - } else { - doSelect(); - } + selectedBackground = MenuItemContainer.this; + showMenu(menu); + } else { + doSelect(); } }); @@ -1157,10 +1130,8 @@ createNodeMenuItemChildren((CustomMenuItem)item); if (mouseEnteredEventHandler == null) { - mouseEnteredEventHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - requestFocus(); // request Focus on hover - } + mouseEnteredEventHandler = event -> { + requestFocus(); // request Focus on hover }; } else { removeEventHandler(MouseEvent.MOUSE_ENTERED, mouseEnteredEventHandler); @@ -1221,30 +1192,26 @@ getChildren().add(rightPane); if (mouseEnteredEventHandler == null) { - mouseEnteredEventHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - if (openSubmenu != null && item != openSubmenu) { - // if a submenu of a different menu is already - // open then close it (RT-15049) - hideSubmenu(); - } + mouseEnteredEventHandler = event -> { + if (openSubmenu != null && item != openSubmenu) { + // if a submenu of a different menu is already + // open then close it (RT-15049) + hideSubmenu(); + } - final Menu menu = (Menu) item; - if (menu.isDisable()) return; - selectedBackground = MenuItemContainer.this; - menu.show(); - requestFocus(); // request Focus on hover - } + final Menu menu = (Menu) item; + if (menu.isDisable()) return; + selectedBackground = MenuItemContainer.this; + menu.show(); + requestFocus(); // request Focus on hover }; } else { removeEventHandler(MouseEvent.MOUSE_ENTERED, mouseEnteredEventHandler); } if (mouseReleasedEventHandler == null) { - mouseReleasedEventHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - item.fire(); - } + mouseReleasedEventHandler = event -> { + item.fire(); }; } else { removeEventHandler(MouseEvent.MOUSE_RELEASED, mouseReleasedEventHandler); @@ -1261,23 +1228,19 @@ updateAccelerator(); if (mouseEnteredEventHandler == null) { - mouseEnteredEventHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - if (openSubmenu != null) { - openSubmenu.hide(); - } - requestFocus(); // request Focus on hover + mouseEnteredEventHandler = event -> { + if (openSubmenu != null) { + openSubmenu.hide(); } + requestFocus(); // request Focus on hover }; } else { removeEventHandler(MouseEvent.MOUSE_ENTERED, mouseEnteredEventHandler); } if (mouseReleasedEventHandler == null) { - mouseReleasedEventHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - doSelect(); - } + mouseReleasedEventHandler = event -> { + doSelect(); }; } else { removeEventHandler(MouseEvent.MOUSE_RELEASED, mouseReleasedEventHandler); @@ -1332,14 +1295,12 @@ Node node = item.getContent(); getChildren().add(node); // handle hideOnClick - node.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (item == null || item.isDisable()) return; + node.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { + if (item == null || item.isDisable()) return; - item.fire(); - if (item.isHideOnClick()) { - hideAllMenus(item); - } + item.fire(); + if (item.isHideOnClick()) { + hideAllMenus(item); } }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/CustomColorDialog.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/CustomColorDialog.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/CustomColorDialog.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/CustomColorDialog.java @@ -89,15 +89,13 @@ dialog.addEventHandler(KeyEvent.ANY, keyEventListener); } - private final EventHandler keyEventListener = new EventHandler() { - @Override public void handle(KeyEvent e) { - switch (e.getCode()) { - case ESCAPE : - dialog.setScene(null); - dialog.close(); - default: - break; - } + private final EventHandler keyEventListener = e -> { + switch (e.getCode()) { + case ESCAPE : + dialog.setScene(null); + dialog.close(); + default: + break; } }; @@ -331,12 +329,8 @@ getStyleClass().add("color-rect-pane"); - customColorProperty().addListener(new ChangeListener() { - - @Override - public void changed(ObservableValue ov, Color t, Color t1) { - colorChanged(); - } + customColorProperty().addListener((ov, t, t1) -> { + colorChanged(); }); colorRectIndicator = new Region(); @@ -387,13 +381,11 @@ new Stop(1, Color.rgb(255, 255, 255, 0))), CornerRadii.EMPTY, Insets.EMPTY))); - EventHandler rectMouseHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - final double x = event.getX(); - final double y = event.getY(); - sat.set(clamp(x / colorRect.getWidth()) * 100); - bright.set(100 - (clamp(y / colorRect.getHeight()) * 100)); - } + EventHandler rectMouseHandler = event -> { + final double x = event.getX(); + final double y = event.getY(); + sat.set(clamp(x / colorRect.getWidth()) * 100); + bright.set(100 - (clamp(y / colorRect.getHeight()) * 100)); }; colorRectOverlayTwo = new Pane(); @@ -424,11 +416,9 @@ colorBarIndicator.layoutYProperty().bind(hue.divide(360).multiply(colorBar.heightProperty())); colorRectOpacityContainer.opacityProperty().bind(alpha.divide(100)); - EventHandler barMouseHandler = new EventHandler() { - @Override public void handle(MouseEvent event) { - final double y = event.getY(); - hue.set(clamp(y / colorRect.getHeight()) * 360); - } + EventHandler barMouseHandler = event -> { + final double y = event.getY(); + hue.set(clamp(y / colorRect.getHeight()) * 360); }; colorBar.setOnMouseDragged(barMouseHandler); @@ -642,20 +632,16 @@ hsbButton.setToggleGroup(group); rgbButton.setToggleGroup(group); webButton.setToggleGroup(group); - group.selectedToggleProperty().addListener(new ChangeListener() { - - @Override - public void changed(ObservableValue observable, Toggle oldValue, Toggle newValue) { - if (newValue == null) { - group.selectToggle(oldValue); + group.selectedToggleProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null) { + group.selectToggle(oldValue); + } else { + if (newValue == hsbButton) { + showHSBSettings(); + } else if (newValue == rgbButton) { + showRGBSettings(); } else { - if (newValue == hsbButton) { - showHSBSettings(); - } else if (newValue == rgbButton) { - showRGBSettings(); - } else { - showWebSettings(); - } + showWebSettings(); } } }); @@ -666,35 +652,29 @@ Button saveButton = new Button(getString("Save")); saveButton.setDefaultButton(true); - saveButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - if (onSave != null) { - onSave.run(); - } - dialog.hide(); + saveButton.setOnAction(t -> { + if (onSave != null) { + onSave.run(); } + dialog.hide(); }); Button useButton = new Button(getString("Use")); - useButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - if (onUse != null) { - onUse.run(); - } - dialog.hide(); + useButton.setOnAction(t -> { + if (onUse != null) { + onUse.run(); } + dialog.hide(); }); Button cancelButton = new Button(getString("Cancel")); cancelButton.setCancelButton(true); - cancelButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - customColorProperty.set(getCurrentColor()); - if (onCancel != null) { - onCancel.run(); - } - dialog.hide(); + cancelButton.setOnAction(e -> { + customColorProperty.set(getCurrentColor()); + if (onCancel != null) { + onCancel.run(); } + dialog.hide(); }); buttonBox.getChildren().addAll(saveButton, useButton, cancelButton); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerContent.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerContent.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerContent.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerContent.java @@ -54,6 +54,7 @@ import javafx.scene.control.DatePicker; import javafx.scene.control.DateCell; import javafx.scene.control.Label; +import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; @@ -128,11 +129,8 @@ displayedYearMonth.set((date != null) ? YearMonth.from(date) : YearMonth.now()); } - displayedYearMonth.addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, - YearMonth oldValue, YearMonth newValue) { - updateValues(); - } + displayedYearMonth.addListener((observable, oldValue, newValue) -> { + updateValues(); }); @@ -166,18 +164,16 @@ gridPane.setVgap(-1); gridPane.setHgap(-1); - gridPane.focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean hasFocus) { - if (hasFocus) { - if (lastFocusedDayCell != null) { - Platform.runLater(new Runnable() { - @Override public void run() { - lastFocusedDayCell.requestFocus(); - } - }); - } else { - clearFocus(); - } + gridPane.focusedProperty().addListener((ov, t, hasFocus) -> { + if (hasFocus) { + if (lastFocusedDayCell != null) { + Platform.runLater(new Runnable() { + @Override public void run() { + lastFocusedDayCell.requestFocus(); + } + }); + } else { + clearFocus(); } } }); @@ -205,70 +201,68 @@ refresh(); // RT-30511: This prevents key events from reaching the popup's owner. - addEventHandler(KeyEvent.ANY, new EventHandler() { - @Override public void handle(KeyEvent e) { - Node node = getScene().getFocusOwner(); + addEventHandler(KeyEvent.ANY, e -> { + Node node = getScene().getFocusOwner(); + if (node instanceof DateCell) { + lastFocusedDayCell = (DateCell)node; + } + + if (e.getEventType() == KeyEvent.KEY_PRESSED) { + switch (e.getCode()) { + case HOME: + goToDate(LocalDate.now(), true); + e.consume(); + break; + + + case PAGE_UP: + if ((isMac() && e.isMetaDown()) || (!isMac() && e.isControlDown())) { + if (!backYearButton.isDisabled()) { + forward(-1, YEARS, true); + } + } else { + if (!backMonthButton.isDisabled()) { + forward(-1, MONTHS, true); + } + } + e.consume(); + break; + + case PAGE_DOWN: + if ((isMac() && e.isMetaDown()) || (!isMac() && e.isControlDown())) { + if (!forwardYearButton.isDisabled()) { + forward(1, YEARS, true); + } + } else { + if (!forwardMonthButton.isDisabled()) { + forward(1, MONTHS, true); + } + } + e.consume(); + break; + } + + node = getScene().getFocusOwner(); if (node instanceof DateCell) { lastFocusedDayCell = (DateCell)node; } + } - if (e.getEventType() == KeyEvent.KEY_PRESSED) { - switch (e.getCode()) { - case HOME: - goToDate(LocalDate.now(), true); - e.consume(); - break; + // Consume all key events except those that control + // showing the popup and traversal. + switch (e.getCode()) { + case ESCAPE: + case F4: + case F10: + case UP: + case DOWN: + case LEFT: + case RIGHT: + case TAB: + break; - - case PAGE_UP: - if ((isMac() && e.isMetaDown()) || (!isMac() && e.isControlDown())) { - if (!backYearButton.isDisabled()) { - forward(-1, YEARS, true); - } - } else { - if (!backMonthButton.isDisabled()) { - forward(-1, MONTHS, true); - } - } - e.consume(); - break; - - case PAGE_DOWN: - if ((isMac() && e.isMetaDown()) || (!isMac() && e.isControlDown())) { - if (!forwardYearButton.isDisabled()) { - forward(1, YEARS, true); - } - } else { - if (!forwardMonthButton.isDisabled()) { - forward(1, MONTHS, true); - } - } - e.consume(); - break; - } - - node = getScene().getFocusOwner(); - if (node instanceof DateCell) { - lastFocusedDayCell = (DateCell)node; - } - } - - // Consume all key events except those that control - // showing the popup and traversal. - switch (e.getCode()) { - case ESCAPE: - case F4: - case F10: - case UP: - case DOWN: - case LEFT: - case RIGHT: - case TAB: - break; - - default: - e.consume(); - } + default: + e.consume(); } }); } @@ -307,19 +301,15 @@ forwardMonthButton.setGraphic(rightMonthArrow); - backMonthButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - forward(-1, MONTHS, false); - } + backMonthButton.setOnAction(t -> { + forward(-1, MONTHS, false); }); monthLabel = new Label(); monthLabel.getStyleClass().add("spinner-label"); - forwardMonthButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - forward(1, MONTHS, false); - } + forwardMonthButton.setOnAction(t -> { + forward(1, MONTHS, false); }); monthSpinner.getChildren().addAll(backMonthButton, monthLabel, forwardMonthButton); @@ -347,19 +337,15 @@ forwardYearButton.setGraphic(rightYearArrow); - backYearButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - forward(-1, YEARS, false); - } + backYearButton.setOnAction(t -> { + forward(-1, YEARS, false); }); yearLabel = new Label(); yearLabel.getStyleClass().add("spinner-label"); - forwardYearButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - forward(1, YEARS, false); - } + forwardYearButton.setOnAction(t -> { + forward(1, YEARS, false); }); yearSpinner.getChildren().addAll(backYearButton, yearLabel, forwardYearButton); @@ -717,16 +703,14 @@ } protected void createDayCells() { - final EventHandler dayCellActionHandler = new EventHandler() { - @Override public void handle(MouseEvent ev) { - if (ev.getButton() != MouseButton.PRIMARY) { - return; - } + final EventHandler dayCellActionHandler = ev -> { + if (ev.getButton() != MouseButton.PRIMARY) { + return; + } - DateCell dayCell = (DateCell)ev.getSource(); - selectDayCell(dayCell); - lastFocusedDayCell = dayCell; - } + DateCell dayCell = (DateCell)ev.getSource(); + selectDayCell(dayCell); + lastFocusedDayCell = dayCell; }; for (int row = 0; row < 6; row++) { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java @@ -92,75 +92,67 @@ // Move fake focus in to the textfield. // Note: DatePicker uses TextField for both editable and non-editable modes - datePicker.focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean hasFocus) { - //if (datePicker.isEditable()) { - // Fix for the regression noted in a comment in RT-29885. - ((ComboBoxListViewSkin.FakeFocusTextField)textField).setFakeFocus(hasFocus); - //} - } + datePicker.focusedProperty().addListener((ov, t, hasFocus) -> { + //if (datePicker.isEditable()) { + // Fix for the regression noted in a comment in RT-29885. + ((ComboBoxListViewSkin.FakeFocusTextField)textField).setFakeFocus(hasFocus); + //} }); - datePicker.addEventFilter(KeyEvent.ANY, new EventHandler() { - @Override public void handle(KeyEvent ke) { - if (textField == null) return; + datePicker.addEventFilter(KeyEvent.ANY, ke -> { + if (textField == null) return; - // This prevents a stack overflow from our rebroadcasting of the - // event to the textfield that occurs in the final else statement - // of the conditions below. - if (ke.getTarget().equals(textField)) return; + // This prevents a stack overflow from our rebroadcasting of the + // event to the textfield that occurs in the final else statement + // of the conditions below. + if (ke.getTarget().equals(textField)) return; - // When the user hits the enter or F4 keys, we respond before - // ever giving the event to the TextField. - if (ke.getCode() == KeyCode.ENTER) { - setTextFromTextFieldIntoComboBoxValue(); - /* - ** don't consume this if we're on an embedded - ** platform that supports 5-button navigation - */ - if (!Utils.isTwoLevelFocus()) { - ke.consume(); - } - return; - } else if (ke.getCode() == KeyCode.F4 && ke.getEventType() == KeyEvent.KEY_RELEASED) { - if (datePicker.isShowing()) datePicker.hide(); - else datePicker.show(); - ke.consume(); - return; - } else if (ke.getCode() == KeyCode.F10 || ke.getCode() == KeyCode.ESCAPE) { - // RT-23275: The TextField fires F10 and ESCAPE key events - // up to the parent, which are then fired back at the - // TextField, and this ends up in an infinite loop until - // the stack overflows. So, here we consume these two - // events and stop them from going any further. - ke.consume(); - return; - } else { - // Fix for the regression noted in a comment in RT-29885. - // This forwards the event down into the TextField when - // the key event is actually received by the ComboBox. - textField.fireEvent(ke.copyFor(textField, textField)); + // When the user hits the enter or F4 keys, we respond before + // ever giving the event to the TextField. + if (ke.getCode() == KeyCode.ENTER) { + setTextFromTextFieldIntoComboBoxValue(); + /* + ** don't consume this if we're on an embedded + ** platform that supports 5-button navigation + */ + if (!Utils.isTwoLevelFocus()) { ke.consume(); } + return; + } else if (ke.getCode() == KeyCode.F4 && ke.getEventType() == KeyEvent.KEY_RELEASED) { + if (datePicker.isShowing()) datePicker.hide(); + else datePicker.show(); + ke.consume(); + return; + } else if (ke.getCode() == KeyCode.F10 || ke.getCode() == KeyCode.ESCAPE) { + // RT-23275: The TextField fires F10 and ESCAPE key events + // up to the parent, which are then fired back at the + // TextField, and this ends up in an infinite loop until + // the stack overflows. So, here we consume these two + // events and stop them from going any further. + ke.consume(); + return; + } else { + // Fix for the regression noted in a comment in RT-29885. + // This forwards the event down into the TextField when + // the key event is actually received by the ComboBox. + textField.fireEvent(ke.copyFor(textField, textField)); + ke.consume(); } }); // Fix for RT-31093 - drag events from the textfield were not surfacing // properly for the DatePicker. if (textField != null) { - textField.addEventFilter(MouseEvent.DRAG_DETECTED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (event.getTarget().equals(datePicker)) return; - datePicker.fireEvent(event.copyFor(datePicker, datePicker)); - event.consume(); - } + textField.addEventFilter(MouseEvent.DRAG_DETECTED, event -> { + if (event.getTarget().equals(datePicker)) return; + datePicker.fireEvent(event.copyFor(datePicker, datePicker)); + event.consume(); }); - textField.addEventFilter(DragEvent.ANY, new EventHandler() { - @Override public void handle(DragEvent event) { - if (event.getTarget().equals(datePicker)) return; - datePicker.fireEvent(event.copyFor(datePicker, datePicker)); - event.consume(); - } + textField.addEventFilter(DragEvent.ANY, event -> { + if (event.getTarget().equals(datePicker)) return; + datePicker.fireEvent(event.copyFor(datePicker, datePicker)); + event.consume(); }); } @@ -282,25 +274,23 @@ textField.focusTraversableProperty().bindBidirectional(datePicker.focusTraversableProperty()); textField.promptTextProperty().bind(datePicker.promptTextProperty()); - textField.focusedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean hasFocus) { - // Note: DatePicker uses TextField for both editable and non-editable - // modes, so don't perform this test here. - // if (!datePicker.isEditable()) return; + textField.focusedProperty().addListener((ov, t, hasFocus) -> { + // Note: DatePicker uses TextField for both editable and non-editable + // modes, so don't perform this test here. + // if (!datePicker.isEditable()) return; - // Fix for RT-29885 - datePicker.getProperties().put("FOCUSED", hasFocus); - // --- end of RT-29885 + // Fix for RT-29885 + datePicker.getProperties().put("FOCUSED", hasFocus); + // --- end of RT-29885 - // RT-21454 starts here - if (! hasFocus) { - setTextFromTextFieldIntoComboBoxValue(); - pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, false); - } else { - pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, true); - } - // --- end of RT-21454 + // RT-21454 starts here + if (! hasFocus) { + setTextFromTextFieldIntoComboBoxValue(); + pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, false); + } else { + pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDOCLASS_STATE, true); } + // --- end of RT-21454 }); return textField; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DoubleFieldSkin.java @@ -45,10 +45,8 @@ // Whenever the value changes on the control, we need to update the text // in the TextField. The only time this is not the case is when the update // to the control happened as a result of an update in the text textField. - control.valueProperty().addListener(doubleFieldValueListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateText(); - } + control.valueProperty().addListener(doubleFieldValueListener = observable -> { + updateText(); }); } @@ -101,10 +99,8 @@ } catch (NumberFormatException ex) { // Empty string most likely ((DoubleField) control).setValue(0); - Platform.runLater(new Runnable() { - @Override public void run() { - getTextField().positionCaret(1); - } + Platform.runLater(() -> { + getTextField().positionCaret(1); }); } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/EmbeddedTextContextMenuContent.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/EmbeddedTextContextMenuContent.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/EmbeddedTextContextMenuContent.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/EmbeddedTextContextMenuContent.java @@ -58,31 +58,27 @@ updateMenuItemContainer(); getChildren().addAll(pointer, menuBox); - contextMenu.ownerNodeProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable arg0) { - if (contextMenu.getOwnerNode() instanceof TextArea) { - TextAreaSkin tas = (TextAreaSkin)((TextArea)contextMenu.getOwnerNode()).getSkin(); - tas.getSkinnable().getProperties().addListener(new InvalidationListener() { - @Override public void invalidated(Observable arg0) { - requestLayout(); - } - }); - } else if (contextMenu.getOwnerNode() instanceof TextField) { - TextFieldSkin tfs = (TextFieldSkin)((TextField)contextMenu.getOwnerNode()).getSkin(); - tfs.getSkinnable().getProperties().addListener(new InvalidationListener() { - @Override public void invalidated(Observable arg0) { - requestLayout(); - } - }); - } + contextMenu.ownerNodeProperty().addListener(arg0 -> { + if (contextMenu.getOwnerNode() instanceof TextArea) { + TextAreaSkin tas = (TextAreaSkin)((TextArea)contextMenu.getOwnerNode()).getSkin(); + tas.getSkinnable().getProperties().addListener(new InvalidationListener() { + @Override public void invalidated(Observable arg0) { + requestLayout(); + } + }); + } else if (contextMenu.getOwnerNode() instanceof TextField) { + TextFieldSkin tfs = (TextFieldSkin)((TextField)contextMenu.getOwnerNode()).getSkin(); + tfs.getSkinnable().getProperties().addListener(new InvalidationListener() { + @Override public void invalidated(Observable arg0) { + requestLayout(); + } + }); } }); - contextMenu.getItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - // Listener to items in PopupMenu to update items in PopupMenuContent - updateMenuItemContainer(); - } + contextMenu.getItems().addListener((ListChangeListener) c -> { + // Listener to items in PopupMenu to update items in PopupMenuContent + updateMenuItemContainer(); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java @@ -191,44 +191,40 @@ static boolean vkLookup = false; static { - AccessController.doPrivileged(new PrivilegedAction() { - @Override public Void run() { - String s = System.getProperty("com.sun.javafx.vk.adjustwindow"); - if (s != null) { - vkAdjustWindow = Boolean.valueOf(s); + AccessController.doPrivileged((PrivilegedAction) () -> { + String s = System.getProperty("com.sun.javafx.vk.adjustwindow"); + if (s != null) { + vkAdjustWindow = Boolean.valueOf(s); + } + s = System.getProperty("com.sun.javafx.sqe.vk.lookup"); + if (s != null) { + vkLookup = Boolean.valueOf(s); + } + s = System.getProperty("com.sun.javafx.virtualKeyboard.backspaceRepeatDelay"); + if (s != null) { + Double delay = Double.valueOf(s); + KEY_REPEAT_DELAY = Math.min(Math.max(delay, KEY_REPEAT_DELAY_MIN), KEY_REPEAT_DELAY_MAX); + } + s = System.getProperty("com.sun.javafx.virtualKeyboard.backspaceRepeatRate"); + if (s != null) { + Double rate = Double.valueOf(s); + if (rate <= 0) { + //disable key repeat + KEY_REPEAT_RATE = 0; + } else { + KEY_REPEAT_RATE = Math.min(Math.max(rate, KEY_REPEAT_RATE_MIN), KEY_REPEAT_RATE_MAX); } - s = System.getProperty("com.sun.javafx.sqe.vk.lookup"); - if (s != null) { - vkLookup = Boolean.valueOf(s); - } - s = System.getProperty("com.sun.javafx.virtualKeyboard.backspaceRepeatDelay"); - if (s != null) { - Double delay = Double.valueOf(s); - KEY_REPEAT_DELAY = Math.min(Math.max(delay, KEY_REPEAT_DELAY_MIN), KEY_REPEAT_DELAY_MAX); - } - s = System.getProperty("com.sun.javafx.virtualKeyboard.backspaceRepeatRate"); - if (s != null) { - Double rate = Double.valueOf(s); - if (rate <= 0) { - //disable key repeat - KEY_REPEAT_RATE = 0; - } else { - KEY_REPEAT_RATE = Math.min(Math.max(rate, KEY_REPEAT_RATE_MIN), KEY_REPEAT_RATE_MAX); - } - } - return null; } + return null; }); } // Proxy for read-only Window.yProperty() so we can animate. private static DoubleProperty winY = new SimpleDoubleProperty(); static { - winY.addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (vkPopup != null) { - vkPopup.setY(winY.get()); - } + winY.addListener(valueModel -> { + if (vkPopup != null) { + vkPopup.setY(winY.get()); } }); } @@ -332,21 +328,19 @@ private void registerUnhideHandler(final Node node) { if (unHideEventHandler == null) { - unHideEventHandler = new EventHandler () { - public void handle(InputEvent event) { - if (attachedNode != null && isVKHidden) { - double screenHeight = com.sun.javafx.Utils.getScreen(attachedNode).getBounds().getHeight(); - if (fxvk.getHeight() > 0 && (vkPopup.getY() > screenHeight - fxvk.getHeight())) { - if (slideInTimeline.getStatus() != Animation.Status.RUNNING) { - startSlideIn(); - if (vkAdjustWindow) { - adjustWindowPosition(attachedNode); - } + unHideEventHandler = event -> { + if (attachedNode != null && isVKHidden) { + double screenHeight = com.sun.javafx.Utils.getScreen(attachedNode).getBounds().getHeight(); + if (fxvk.getHeight() > 0 && (vkPopup.getY() > screenHeight - fxvk.getHeight())) { + if (slideInTimeline.getStatus() != Animation.Status.RUNNING) { + startSlideIn(); + if (vkAdjustWindow) { + adjustWindowPosition(attachedNode); } } } - isVKHidden = false; - } + } + isVKHidden = false; }; } node.addEventHandler(TOUCH_PRESSED, unHideEventHandler); @@ -405,13 +399,11 @@ Interpolator.EASE_BOTH))); slideOutTimeline.getKeyFrames().setAll( new KeyFrame(Duration.millis(VK_SLIDE_MILLIS), - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { if (hideAfterSlideOut && vkPopup.isShowing()) { vkPopup.hide(); } - } - }, + }, new KeyValue(winY, screenHeight, Interpolator.EASE_BOTH))); //Set VK size @@ -429,11 +421,9 @@ if (secondaryVKDelay == null) { secondaryVKDelay = new Timeline(); } - KeyFrame kf = new KeyFrame(Duration.millis(500), new EventHandler() { - @Override public void handle(ActionEvent event) { - if (secondaryVKKey != null) { - showSecondaryVK(secondaryVKKey); - } + KeyFrame kf = new KeyFrame(Duration.millis(500), event -> { + if (secondaryVKKey != null) { + showSecondaryVK(secondaryVKKey); } }); secondaryVKDelay.getKeyFrames().setAll(kf); @@ -441,23 +431,21 @@ //Setup key repeat animations if (KEY_REPEAT_RATE > 0) { repeatInitialDelay = new Timeline(new KeyFrame( - Duration.millis(KEY_REPEAT_DELAY), - new EventHandler() { - @Override public void handle(ActionEvent event) { - //fire current key - repeatKey.sendKeyEvents(); - //Start repeat animation - repeatSubsequentDelay.playFromStart(); - } - })); + Duration.millis(KEY_REPEAT_DELAY), + event -> { + //fire current key + repeatKey.sendKeyEvents(); + //Start repeat animation + repeatSubsequentDelay.playFromStart(); + } + )); repeatSubsequentDelay = new Timeline(new KeyFrame( - Duration.millis(1000.0 / KEY_REPEAT_RATE), - new EventHandler() { - @Override public void handle(ActionEvent event) { - //fire current key - repeatKey.sendKeyEvents(); - } - })); + Duration.millis(1000.0 / KEY_REPEAT_RATE), + event -> { + //fire current key + repeatKey.sendKeyEvents(); + } + )); repeatSubsequentDelay.setCycleCount(Animation.INDEFINITE); } } @@ -686,17 +674,13 @@ altText.setTextOrigin(VPos.TOP); getChildren().setAll(text, altText, icon); getStyleClass().setAll("key"); - addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (event.getButton() == MouseButton.PRIMARY) - press(); - } + addEventHandler(MouseEvent.MOUSE_PRESSED, event -> { + if (event.getButton() == MouseButton.PRIMARY) + press(); }); - addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override public void handle(MouseEvent event) { - if (event.getButton() == MouseButton.PRIMARY) - release(); - } + addEventHandler(MouseEvent.MOUSE_RELEASED, event -> { + if (event.getButton() == MouseButton.PRIMARY) + release(); }); } protected void press() { } @@ -995,18 +979,16 @@ secondaryVK.setMinWidth(USE_PREF_SIZE); secondaryVK.setPrefHeight(h); secondaryVK.setMinHeight(USE_PREF_SIZE); - Platform.runLater(new Runnable() { - public void run() { - // Position popup on screen - Point2D nodePoint = - com.sun.javafx.Utils.pointRelativeTo(key, w, h, HPos.CENTER, VPos.TOP, - 5, -3, true); - double x = nodePoint.getX(); - double y = nodePoint.getY(); - Scene scene = key.getScene(); - x = Math.min(x, scene.getWindow().getX() + scene.getWidth() - w); - secondaryPopup.show(key.getScene().getWindow(), x, y); - } + Platform.runLater(() -> { + // Position popup on screen + Point2D nodePoint = + com.sun.javafx.Utils.pointRelativeTo(key, w, h, HPos.CENTER, VPos.TOP, + 5, -3, true); + double x = nodePoint.getX(); + double y = nodePoint.getY(); + Scene scene = key.getScene(); + x = Math.min(x, scene.getWindow().getX() + scene.getWidth() - w); + secondaryPopup.show(key.getScene().getWindow(), x, y); }); } } else { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/InputFieldSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/InputFieldSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/InputFieldSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/InputFieldSkin.java @@ -93,10 +93,8 @@ textField.setFocusTraversable(false); control.getStyleClass().addAll(textField.getStyleClass()); textField.getStyleClass().setAll(control.getStyleClass()); - control.getStyleClass().addListener(InputFieldStyleClassListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - textField.getStyleClass().setAll(control.getStyleClass()); - } + control.getStyleClass().addListener(InputFieldStyleClassListener = observable -> { + textField.getStyleClass().setAll(control.getStyleClass()); }); // // Align the text to the right @@ -107,10 +105,8 @@ // Whenever the text of the textField changes, we may need to // update the value. - textField.textProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateValue(); - } + textField.textProperty().addListener(observable -> { + updateValue(); }); // Right now there is some funny business regarding focus in JavaFX. So @@ -118,10 +114,8 @@ // to give it to the InputField. This isn't right, but we need to fix // this in JavaFX, I don't think I can hack around it // textField.setFocusTraversable(false); - control.focusedProperty().addListener(InputFieldFocusListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - textField.handleFocus(control.isFocused()); - } + control.focusedProperty().addListener(InputFieldFocusListener = observable -> { + textField.handleFocus(control.isFocused()); }); // getting an exception with this... // control.addEventFilter(InputEvent.ANY, new EventHandler() { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/IntegerFieldSkin.java @@ -45,10 +45,8 @@ // Whenever the value changes on the control, we need to update the text // in the TextField. The only time this is not the case is when the update // to the control happened as a result of an update in the text textField. - control.valueProperty().addListener(integerFieldValueListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateText(); - } + control.valueProperty().addListener(integerFieldValueListener = observable -> { + updateText(); }); } @@ -103,10 +101,8 @@ } catch (NumberFormatException ex) { // Empty string most likely ((IntegerField) control).setValue(0); - Platform.runLater(new Runnable() { - @Override public void run() { - getTextField().positionCaret(1); - } + Platform.runLater(() -> { + getTextField().positionCaret(1); }); } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java @@ -99,11 +99,9 @@ * * This is package private ONLY FOR THE SAKE OF TESTING */ - final InvalidationListener graphicPropertyChangedListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - invalidText = true; - getSkinnable().requestLayout(); - } + final InvalidationListener graphicPropertyChangedListener = valueModel -> { + invalidText = true; + getSkinnable().requestLayout(); }; private Rectangle textClip; @@ -471,12 +469,9 @@ } if (mnemonic_underscore != null) { if (getChildren().contains(mnemonic_underscore)) { - Platform.runLater(new Runnable() { - @Override - public void run() { - getChildren().remove(mnemonic_underscore); - mnemonic_underscore = null; - } + Platform.runLater(() -> { + getChildren().remove(mnemonic_underscore); + mnemonic_underscore = null; }); } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java @@ -73,12 +73,7 @@ // on embedded systems with touch screens which do not generate scroll // events for touch drag gestures. private static final boolean IS_PANNABLE = - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Boolean run() { - return Boolean.getBoolean("com.sun.javafx.scene.control.skin.ListViewSkin.pannable"); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> Boolean.getBoolean("com.sun.javafx.scene.control.skin.ListViewSkin.pannable")); private ObservableList listViewItems; @@ -91,30 +86,24 @@ flow.setId("virtual-flow"); flow.setPannable(IS_PANNABLE); flow.setVertical(getSkinnable().getOrientation() == Orientation.VERTICAL); - flow.setCreateCell(new Callback>() { - @Override public ListCell call(VirtualFlow flow) { - return ListViewSkin.this.createCell(); - } - }); + flow.setCreateCell(flow1 -> ListViewSkin.this.createCell()); flow.setFixedCellSize(listView.getFixedCellSize()); getChildren().add(flow); - EventHandler ml = new EventHandler() { - @Override public void handle(MouseEvent event) { - // RT-15127: cancel editing on scroll. This is a bit extreme - // (we are cancelling editing on touching the scrollbars). - // This can be improved at a later date. - if (listView.getEditingIndex() > -1) { - listView.edit(-1); - } - - // This ensures that the list maintains the focus, even when the vbar - // and hbar controls inside the flow are clicked. Without this, the - // focus border will not be shown when the user interacts with the - // scrollbars, and more importantly, keyboard navigation won't be - // available to the user. - listView.requestFocus(); + EventHandler ml = event -> { + // RT-15127: cancel editing on scroll. This is a bit extreme + // (we are cancelling editing on touching the scrollbars). + // This can be improved at a later date. + if (listView.getEditingIndex() > -1) { + listView.edit(-1); } + + // This ensures that the list maintains the focus, even when the vbar + // and hbar controls inside the flow are clicked. Without this, the + // focus border will not be shown when the user interacts with the + // scrollbars, and more importantly, keyboard navigation won't be + // available to the user. + listView.requestFocus(); }; flow.getVbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); flow.getHbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); @@ -122,30 +111,14 @@ updateRowCount(); // init the behavior 'closures' - getBehavior().setOnFocusPreviousRow(new Runnable() { - @Override public void run() { onFocusPreviousCell(); } - }); - getBehavior().setOnFocusNextRow(new Runnable() { - @Override public void run() { onFocusNextCell(); } - }); - getBehavior().setOnMoveToFirstCell(new Runnable() { - @Override public void run() { onMoveToFirstCell(); } - }); - getBehavior().setOnMoveToLastCell(new Runnable() { - @Override public void run() { onMoveToLastCell(); } - }); - getBehavior().setOnScrollPageDown(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageDown(isFocusDriven); } - }); - getBehavior().setOnScrollPageUp(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageUp(isFocusDriven); } - }); - getBehavior().setOnSelectPreviousRow(new Runnable() { - @Override public void run() { onSelectPreviousCell(); } - }); - getBehavior().setOnSelectNextRow(new Runnable() { - @Override public void run() { onSelectNextCell(); } - }); + getBehavior().setOnFocusPreviousRow(() -> { onFocusPreviousCell(); }); + getBehavior().setOnFocusNextRow(() -> { onFocusNextCell(); }); + getBehavior().setOnMoveToFirstCell(() -> { onMoveToFirstCell(); }); + getBehavior().setOnMoveToLastCell(() -> { onMoveToLastCell(); }); + getBehavior().setOnScrollPageDown(isFocusDriven -> onScrollPageDown(isFocusDriven)); + getBehavior().setOnScrollPageUp(isFocusDriven -> onScrollPageUp(isFocusDriven)); + getBehavior().setOnSelectPreviousRow(() -> { onSelectPreviousCell(); }); + getBehavior().setOnSelectNextRow(() -> { onSelectNextCell(); }); // Register listeners registerChangeListener(listView.itemsProperty(), "ITEMS"); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java @@ -96,12 +96,10 @@ for (Menu menu : menuBar.getMenus()) { wrappedDefaultMenus.add(GlobalMenuAdapter.adapt(menu)); } - menuBar.getMenus().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - wrappedDefaultMenus.clear(); - for (Menu menu : menuBar.getMenus()) { - wrappedDefaultMenus.add(GlobalMenuAdapter.adapt(menu)); - } + menuBar.getMenus().addListener((ListChangeListener) c -> { + wrappedDefaultMenus.clear(); + for (Menu menu : menuBar.getMenus()) { + wrappedDefaultMenus.add(GlobalMenuAdapter.adapt(menu)); } }); } @@ -150,26 +148,22 @@ private static void initSystemMenuBar() { systemMenuMap = new WeakHashMap<>(); - final InvalidationListener focusedStageListener = new InvalidationListener() { - @Override public void invalidated(Observable ov) { - setSystemMenu((Stage)((ReadOnlyProperty)ov).getBean()); - } + final InvalidationListener focusedStageListener = ov -> { + setSystemMenu((Stage)((ReadOnlyProperty)ov).getBean()); }; final ObservableList stages = StageHelper.getStages(); for (Stage stage : stages) { stage.focusedProperty().addListener(focusedStageListener); } - stages.addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - for (Stage stage : c.getRemoved()) { - stage.focusedProperty().removeListener(focusedStageListener); - } - for (Stage stage : c.getAddedSubList()) { - stage.focusedProperty().addListener(focusedStageListener); - setSystemMenu(stage); - } + stages.addListener((ListChangeListener) c -> { + while (c.next()) { + for (Stage stage : c.getRemoved()) { + stage.focusedProperty().removeListener(focusedStageListener); + } + for (Stage stage : c.getAddedSubList()) { + stage.focusedProperty().addListener(focusedStageListener); + setSystemMenu(stage); } } }); @@ -201,150 +195,133 @@ getChildren().add(container); // Key navigation - keyEventHandler = new EventHandler() { - @Override public void handle(KeyEvent event) { - // process right left and may be tab key events - if (openMenu != null) { - switch (event.getCode()) { - case LEFT: { - boolean isRTL = control.getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT; - if (control.getScene().getWindow().isFocused()) { - if (openMenu == null) return; - if ( !openMenu.isShowing()) { - if (isRTL) { - selectNextMenu(); // just move the selection bar - } else { - selectPrevMenu(); // just move the selection bar - } - event.consume(); - return; + keyEventHandler = event -> { + // process right left and may be tab key events + if (openMenu != null) { + switch (event.getCode()) { + case LEFT: { + boolean isRTL = control.getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT; + if (control.getScene().getWindow().isFocused()) { + if (openMenu == null) return; + if ( !openMenu.isShowing()) { + if (isRTL) { + selectNextMenu(); // just move the selection bar + } else { + selectPrevMenu(); // just move the selection bar } - if (isRTL) { - showNextMenu(); - } else { - showPrevMenu(); - } + event.consume(); + return; } - event.consume(); - break; + if (isRTL) { + showNextMenu(); + } else { + showPrevMenu(); + } } - case RIGHT: - { - boolean isRTL = control.getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT; - if (control.getScene().getWindow().isFocused()) { - if (openMenu == null) return; - if (! openMenu.isShowing()) { - if (isRTL) { - selectPrevMenu(); // just move the selection bar - } else { - selectNextMenu(); // just move the selection bar - } - event.consume(); - return; - } - if (isRTL) { - showPrevMenu(); - } else { - showNextMenu(); - } - } - event.consume(); - break; - } - case DOWN: - //case SPACE: - //case ENTER: - // RT-18859: Doing nothing for space and enter - if (control.getScene().getWindow().isFocused()) { - if (focusedMenuIndex != -1 && openMenu != null) { - openMenu = getSkinnable().getMenus().get(focusedMenuIndex); - if (!isMenuEmpty(getSkinnable().getMenus().get(focusedMenuIndex))) { - openMenu.show(); - } - event.consume(); - } - } - break; - case ESCAPE: - unSelectMenus(); - event.consume(); - break; - default: + event.consume(); break; } + case RIGHT: + { + boolean isRTL = control.getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT; + if (control.getScene().getWindow().isFocused()) { + if (openMenu == null) return; + if (! openMenu.isShowing()) { + if (isRTL) { + selectPrevMenu(); // just move the selection bar + } else { + selectNextMenu(); // just move the selection bar + } + event.consume(); + return; + } + if (isRTL) { + showPrevMenu(); + } else { + showNextMenu(); + } + } + event.consume(); + break; + } + case DOWN: + //case SPACE: + //case ENTER: + // RT-18859: Doing nothing for space and enter + if (control.getScene().getWindow().isFocused()) { + if (focusedMenuIndex != -1 && openMenu != null) { + openMenu = getSkinnable().getMenus().get(focusedMenuIndex); + if (!isMenuEmpty(getSkinnable().getMenus().get(focusedMenuIndex))) { + openMenu.show(); + } + event.consume(); + } + } + break; + case ESCAPE: + unSelectMenus(); + event.consume(); + break; + default: + break; } } }; - menuBarFocusedPropertyListener = new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean t1) { - if (t1) { - // RT-23147 when MenuBar's focusTraversable is true the first - // menu will visually indicate focus - unSelectMenus(); - focusedMenuIndex = 0; - openMenuButton = ((MenuBarButton)container.getChildren().get(0)); - openMenu = getSkinnable().getMenus().get(0); - openMenuButton.setHover(); - } else { - unSelectMenus(); - } + menuBarFocusedPropertyListener = (ov, t, t1) -> { + if (t1) { + // RT-23147 when MenuBar's focusTraversable is true the first + // menu will visually indicate focus + unSelectMenus(); + focusedMenuIndex = 0; + openMenuButton = ((MenuBarButton)container.getChildren().get(0)); + openMenu = getSkinnable().getMenus().get(0); + openMenuButton.setHover(); + } else { + unSelectMenus(); } }; weakSceneKeyEventHandler = new WeakEventHandler(keyEventHandler); control.getScene().addEventFilter(KeyEvent.KEY_PRESSED, weakSceneKeyEventHandler); // When we click else where in the scene - menu selection should be cleared. - mouseEventHandler = new EventHandler() { - @Override public void handle(MouseEvent t) { - if (!container.localToScene(container.getLayoutBounds()).contains(t.getX(), t.getY())) { - unSelectMenus(); - } + mouseEventHandler = t -> { + if (!container.localToScene(container.getLayoutBounds()).contains(t.getX(), t.getY())) { + unSelectMenus(); } }; weakSceneMouseEventHandler = new WeakEventHandler(mouseEventHandler); control.getScene().addEventFilter(MouseEvent.MOUSE_CLICKED, weakSceneMouseEventHandler); - weakWindowFocusListener = new WeakChangeListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean t, Boolean t1) { - if (!t1) { - unSelectMenus(); - } + weakWindowFocusListener = new WeakChangeListener((ov, t, t1) -> { + if (!t1) { + unSelectMenus(); } }); // When the parent window looses focus - menu selection should be cleared if (control.getScene().getWindow() != null) { control.getScene().getWindow().focusedProperty().addListener(weakWindowFocusListener); } else { - ChangeListener sceneWindowListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Window oldValue, Window newValue) { - if (oldValue != null) oldValue.focusedProperty().removeListener(weakWindowFocusListener); - if (newValue != null) newValue.focusedProperty().addListener(weakWindowFocusListener); - } + ChangeListener sceneWindowListener = (observable, oldValue, newValue) -> { + if (oldValue != null) oldValue.focusedProperty().removeListener(weakWindowFocusListener); + if (newValue != null) newValue.focusedProperty().addListener(weakWindowFocusListener); }; weakWindowSceneListener = new WeakChangeListener(sceneWindowListener); control.getScene().windowProperty().addListener(weakWindowSceneListener); } rebuildUI(); - control.getMenus().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - rebuildUI(); - } + control.getMenus().addListener((ListChangeListener) c -> { + rebuildUI(); }); for (final Menu menu : getSkinnable().getMenus()) { - menu.visibleProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue ov, Boolean t, Boolean t1) { - rebuildUI(); - } + menu.visibleProperty().addListener((ov, t, t1) -> { + rebuildUI(); }); } if (Toolkit.getToolkit().getSystemMenu().isSupported()) { - control.useSystemMenuBarProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - rebuildUI(); - } + control.useSystemMenuBarProperty().addListener(valueModel -> { + rebuildUI(); }); } @@ -375,30 +352,27 @@ engine.addTraverseListener(this); getSkinnable().setImpl_traversalEngine(engine); - control.sceneProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue ov, Scene t, Scene t1) { - if (weakSceneKeyEventHandler != null) { - // remove event filter from the old scene (t) - if (t != null) - t.removeEventFilter(KeyEvent.KEY_PRESSED, weakSceneKeyEventHandler); - } - if (weakSceneMouseEventHandler != null) { - // remove event filter from the old scene (t) - if (t != null) - t.removeEventFilter(MouseEvent.MOUSE_CLICKED, weakSceneMouseEventHandler); - } - - /** - * remove the f10 accelerator from the old scene - * add it to the new scene - */ - if (t != null) { - t.getAccelerators().remove(acceleratorKeyCombo); - } - if (t1 != null ) { - t1.getAccelerators().put(acceleratorKeyCombo, firstMenuRunnable); - } + control.sceneProperty().addListener((ov, t, t1) -> { + if (weakSceneKeyEventHandler != null) { + // remove event filter from the old scene (t) + if (t != null) + t.removeEventFilter(KeyEvent.KEY_PRESSED, weakSceneKeyEventHandler); + } + if (weakSceneMouseEventHandler != null) { + // remove event filter from the old scene (t) + if (t != null) + t.removeEventFilter(MouseEvent.MOUSE_CLICKED, weakSceneMouseEventHandler); + } + + /** + * remove the f10 accelerator from the old scene + * add it to the new scene + */ + if (t != null) { + t.getAccelerators().remove(acceleratorKeyCombo); + } + if (t1 != null ) { + t1.getAccelerators().put(acceleratorKeyCombo, firstMenuRunnable); } }); } @@ -478,16 +452,13 @@ } // RT-20411 : reset menu selected/focused state - private EventHandler menuActionEventHandler = new EventHandler() { - @Override - public void handle(ActionEvent t) { - if (t.getSource() instanceof CustomMenuItem) { - // RT-29614 If CustomMenuItem hideOnClick is false, dont hide - CustomMenuItem cmi = (CustomMenuItem)t.getSource(); - if (!cmi.isHideOnClick()) return; - } - unSelectMenus(); + private EventHandler menuActionEventHandler = t -> { + if (t.getSource() instanceof CustomMenuItem) { + // RT-29614 If CustomMenuItem hideOnClick is false, dont hide + CustomMenuItem cmi = (CustomMenuItem)t.getSource(); + if (!cmi.isHideOnClick()) return; } + unSelectMenus(); }; private void updateActionListeners(Menu m, boolean add) { @@ -562,10 +533,8 @@ setSystemMenu(stage); getSkinnable().requestLayout(); - javafx.application.Platform.runLater(new Runnable() { - public void run() { - getSkinnable().requestLayout(); - } + javafx.application.Platform.runLater(() -> { + getSkinnable().requestLayout(); }); return; } @@ -594,44 +563,32 @@ menuButton.getItems().setAll(menu.getItems()); container.getChildren().add(menuButton); // listen to changes in menu items & update menuButton items - menu.getItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - menuButton.getItems().removeAll(c.getRemoved()); - menuButton.getItems().addAll(c.getFrom(), c.getAddedSubList()); + menu.getItems().addListener((ListChangeListener) c -> { + while (c.next()) { + menuButton.getItems().removeAll(c.getRemoved()); + menuButton.getItems().addAll(c.getFrom(), c.getAddedSubList()); + } + }); + menu.getStyleClass().addListener((ListChangeListener) c -> { + while(c.next()) { + for(int i=c.getFrom(); i() { - @Override - public void onChanged(Change c) { - while(c.next()) { - for(int i=c.getFrom(); i { + menuButton.setId(s2); + }); + menuButton.menuListener = (observable, oldValue, newValue) -> { + if (menu.isShowing()) { + menuButton.show(); + focusedMenuIndex = container.getChildren().indexOf(menuButton); + } else { + menuButton.hide(); } - }); - menu.idProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observableValue, String s, String s2) { - menuButton.setId(s2); - } - }); - menuButton.menuListener = new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (menu.isShowing()) { - menuButton.show(); - focusedMenuIndex = container.getChildren().indexOf(menuButton); - } else { - menuButton.hide(); - } - } - }; menuButton.menu = menu; menu.showingProperty().addListener(menuButton.menuListener); @@ -639,56 +596,46 @@ menuButton.textProperty().bind(menu.textProperty()); menuButton.graphicProperty().bind(menu.graphicProperty()); menuButton.styleProperty().bind(menu.styleProperty()); - menuButton.getProperties().addListener(new MapChangeListener() { - @Override - public void onChanged(Change c) { - if (c.wasAdded() && MenuButtonSkin.AUTOHIDE.equals(c.getKey())) { - menuButton.getProperties().remove(MenuButtonSkin.AUTOHIDE); - menu.hide(); - } + menuButton.getProperties().addListener((MapChangeListener) c -> { + if (c.wasAdded() && MenuButtonSkin.AUTOHIDE.equals(c.getKey())) { + menuButton.getProperties().remove(MenuButtonSkin.AUTOHIDE); + menu.hide(); } }); - menuButton.showingProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean isShowing) { - if (isShowing) { - if (openMenuButton != null && openMenuButton != menuButton) { - openMenuButton.hide(); - } - openMenuButton = menuButton; - openMenu = menu; - if (!menu.isShowing())menu.show(); + menuButton.showingProperty().addListener((observable, oldValue, isShowing) -> { + if (isShowing) { + if (openMenuButton != null && openMenuButton != menuButton) { + openMenuButton.hide(); } + openMenuButton = menuButton; + openMenu = menu; + if (!menu.isShowing())menu.show(); } }); - menuButton.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent event) { - pendingDismiss = menuButton.isShowing(); + menuButton.setOnMousePressed(event -> { + pendingDismiss = menuButton.isShowing(); - // check if the owner window has focus - if (menuButton.getScene().getWindow().isFocused()) { - openMenu = menu; - if (!isMenuEmpty(menu)){ - openMenu.show(); - } - // update FocusedIndex - focusedMenuIndex = getMenuBarButtonIndex(menuButton); + // check if the owner window has focus + if (menuButton.getScene().getWindow().isFocused()) { + openMenu = menu; + if (!isMenuEmpty(menu)){ + openMenu.show(); } + // update FocusedIndex + focusedMenuIndex = getMenuBarButtonIndex(menuButton); } }); - menuButton.setOnMouseReleased(new EventHandler() { - @Override public void handle(MouseEvent event) { - // check if the owner window has focus - if (menuButton.getScene().getWindow().isFocused()) { - if (pendingDismiss) { - resetOpenMenu(); + menuButton.setOnMouseReleased(event -> { + // check if the owner window has focus + if (menuButton.getScene().getWindow().isFocused()) { + if (pendingDismiss) { + resetOpenMenu(); // menuButton.hide(); - } } - pendingDismiss = false; } + pendingDismiss = false; }); // menuButton. setOnKeyPressed(new EventHandler() { @@ -753,25 +700,23 @@ // } // } // }); - menuButton.setOnMouseEntered(new EventHandler() { - @Override public void handle(MouseEvent event) { - // check if the owner window has focus - if (menuButton.getScene() != null && menuButton.getScene().getWindow() != null && - menuButton.getScene().getWindow().isFocused()) { - if (openMenuButton != null && openMenuButton != menuButton) { - openMenuButton.clearHover(); - openMenuButton = null; - openMenuButton = menuButton; - } + menuButton.setOnMouseEntered(event -> { + // check if the owner window has focus + if (menuButton.getScene() != null && menuButton.getScene().getWindow() != null && + menuButton.getScene().getWindow().isFocused()) { + if (openMenuButton != null && openMenuButton != menuButton) { + openMenuButton.clearHover(); + openMenuButton = null; + openMenuButton = menuButton; + } + updateFocusedIndex(); + if (openMenu != null && openMenu != menu) { + // hide the currently visible menu, and move to the new one + openMenu.hide(); + openMenu = menu; updateFocusedIndex(); - if (openMenu != null && openMenu != menu) { - // hide the currently visible menu, and move to the new one - openMenu.hide(); - openMenu = menu; - updateFocusedIndex(); - if (!isMenuEmpty(menu)) { - openMenu.show(); - } + if (!isMenuEmpty(menu)) { + openMenu.show(); } } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkin.java @@ -66,18 +66,14 @@ } }); // request focus on content when the popup is shown - popup.setOnShown(new EventHandler() { - @Override public void handle(WindowEvent event) { - ContextMenuContent cmContent = (ContextMenuContent)popup.getSkin().getNode(); - if (cmContent != null) cmContent.requestFocus(); - } + popup.setOnShown(event -> { + ContextMenuContent cmContent = (ContextMenuContent)popup.getSkin().getNode(); + if (cmContent != null) cmContent.requestFocus(); }); if (menuButton.getOnAction() == null) { - menuButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - menuButton.show(); - } + menuButton.setOnAction(e -> { + menuButton.show(); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuButtonSkinBase.java @@ -69,13 +69,11 @@ protected boolean behaveLikeButton = false; private ListChangeListener itemsChangedListener; - private final ChangeListener acceleratorListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, KeyCombination oldValue, KeyCombination newValue) { - Map accelerators = getSkinnable().getScene().getAccelerators(); - if (accelerators != null) { - Runnable acceleratorRunnable = accelerators.remove(oldValue); - accelerators.put(newValue, acceleratorRunnable); - } + private final ChangeListener acceleratorListener = (observable, oldValue, newValue) -> { + Map accelerators = getSkinnable().getScene().getAccelerators(); + if (accelerators != null) { + Runnable acceleratorRunnable = accelerators.remove(oldValue); + accelerators.put(newValue, acceleratorRunnable); } }; @@ -91,18 +89,14 @@ super(control, behavior); if (control.getOnMousePressed() == null) { - control.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent e) { - getBehavior().mousePressed(e, behaveLikeButton); - } + control.setOnMousePressed(e -> { + getBehavior().mousePressed(e, behaveLikeButton); }); } if (control.getOnMouseReleased() == null) { - control.setOnMouseReleased(new EventHandler() { - @Override public void handle(MouseEvent e) { - getBehavior().mouseReleased(e, behaveLikeButton); - } + control.setOnMouseReleased(e -> { + getBehavior().mouseReleased(e, behaveLikeButton); }); } @@ -131,12 +125,10 @@ getSkinnable().requestLayout(); - itemsChangedListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - popup.getItems().removeAll(c.getRemoved()); - popup.getItems().addAll(c.getFrom(), c.getAddedSubList()); - } + itemsChangedListener = c -> { + while (c.next()) { + popup.getItems().removeAll(c.getRemoved()); + popup.getItems().addAll(c.getFrom(), c.getAddedSubList()); } }; control.getItems().addListener(itemsChangedListener); @@ -144,11 +136,9 @@ if (getSkinnable().getScene() != null) { addAccelerators(getSkinnable().getItems()); } - control.sceneProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue scene, Scene oldValue, Scene newValue) { - if (getSkinnable() != null && getSkinnable().getScene() != null) { - addAccelerators(getSkinnable().getItems()); - } + control.sceneProperty().addListener((scene, oldValue, newValue) -> { + if (getSkinnable() != null && getSkinnable().getScene() != null) { + addAccelerators(getSkinnable().getItems()); } }); @@ -314,25 +304,23 @@ if (menuitem.getAccelerator() != null) { Map accelerators = getSkinnable().getScene().getAccelerators(); if (accelerators != null) { - Runnable acceleratorRunnable = new Runnable() { - public void run() { - if (menuitem.getOnMenuValidation() != null) { - Event.fireEvent(menuitem, new Event(MenuItem.MENU_VALIDATION_EVENT)); + Runnable acceleratorRunnable = () -> { + if (menuitem.getOnMenuValidation() != null) { + Event.fireEvent(menuitem, new Event(MenuItem.MENU_VALIDATION_EVENT)); + } + Menu target = (Menu)menuitem.getParentMenu(); + if(target!= null && target.getOnMenuValidation() != null) { + Event.fireEvent(target, new Event(MenuItem.MENU_VALIDATION_EVENT)); + } + if (!menuitem.isDisable()) { + if (menuitem instanceof RadioMenuItem) { + ((RadioMenuItem)menuitem).setSelected(!((RadioMenuItem)menuitem).isSelected()); } - Menu target = (Menu)menuitem.getParentMenu(); - if(target!= null && target.getOnMenuValidation() != null) { - Event.fireEvent(target, new Event(MenuItem.MENU_VALIDATION_EVENT)); + else if (menuitem instanceof CheckMenuItem) { + ((CheckMenuItem)menuitem).setSelected(!((CheckMenuItem)menuitem).isSelected()); } - if (!menuitem.isDisable()) { - if (menuitem instanceof RadioMenuItem) { - ((RadioMenuItem)menuitem).setSelected(!((RadioMenuItem)menuitem).isSelected()); - } - else if (menuitem instanceof CheckMenuItem) { - ((CheckMenuItem)menuitem).setSelected(!((CheckMenuItem)menuitem).isSelected()); - } - menuitem.fire(); - } + menuitem.fire(); } }; accelerators.put(menuitem.getAccelerator(), acceleratorRunnable); @@ -349,12 +337,10 @@ public MenuLabeledImpl(MenuButton b) { super(b); button = b; - addEventHandler(ActionEvent.ACTION, new EventHandler() { - @Override public void handle(ActionEvent e) { - button.fireEvent(new ActionEvent()); - e.consume(); - } - }); + addEventHandler(ActionEvent.ACTION, e -> { + button.fireEvent(new ActionEvent()); + e.consume(); + }); } } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/NestedTableColumnHeader.java @@ -127,10 +127,8 @@ * * **************************************************************************/ - private final ListChangeListener columnsListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - setHeadersNeedUpdate(); - } + private final ListChangeListener columnsListener = c -> { + setHeadersNeedUpdate(); }; private final WeakListChangeListener weakColumnsListener = diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java @@ -112,13 +112,10 @@ getChildren().addAll(currentStackPane, nextStackPane, navigation); - pagination.maxPageIndicatorCountProperty().addListener(new InvalidationListener() { - @Override - public void invalidated(Observable o) { - resetIndexes(false); - navigation.initializePageIndicators(); - navigation.updatePageIndicators(); - } + pagination.maxPageIndicatorCountProperty().addListener(o -> { + resetIndexes(false); + navigation.initializePageIndicators(); + navigation.updatePageIndicators(); }); registerChangeListener(pagination.widthProperty(), "WIDTH"); @@ -155,139 +152,133 @@ private void initializeSwipeAndTouchHandlers() { final Pagination control = getSkinnable(); - getSkinnable().setOnTouchPressed(new EventHandler() { - @Override public void handle(TouchEvent e) { - if (touchEventId == -1) { - touchEventId = e.getTouchPoint().getId(); - } - if (touchEventId != e.getTouchPoint().getId()) { - return; - } - lastTouchPos = startTouchPos = e.getTouchPoint().getX(); - lastTouchTime = startTouchTime = System.currentTimeMillis(); - touchThresholdBroken = false; - e.consume(); + getSkinnable().setOnTouchPressed(e -> { + if (touchEventId == -1) { + touchEventId = e.getTouchPoint().getId(); } + if (touchEventId != e.getTouchPoint().getId()) { + return; + } + lastTouchPos = startTouchPos = e.getTouchPoint().getX(); + lastTouchTime = startTouchTime = System.currentTimeMillis(); + touchThresholdBroken = false; + e.consume(); }); - getSkinnable().setOnTouchMoved(new EventHandler() { - @Override public void handle(TouchEvent e) { - if (touchEventId != e.getTouchPoint().getId()) { - return; + getSkinnable().setOnTouchMoved(e -> { + if (touchEventId != e.getTouchPoint().getId()) { + return; + } + + double drag = e.getTouchPoint().getX() - lastTouchPos; + long time = System.currentTimeMillis() - lastTouchTime; + touchVelocity = drag/time; + lastTouchPos = e.getTouchPoint().getX(); + lastTouchTime = System.currentTimeMillis(); + double delta = e.getTouchPoint().getX() - startTouchPos; + + if (!touchThresholdBroken && Math.abs(delta) > TOUCH_THRESHOLD) { + touchThresholdBroken = true; + } + + if (touchThresholdBroken) { + double width = control.getWidth() - (snappedLeftInset() + snappedRightInset()); + double currentPaneX; + double nextPaneX; + + if (!setInitialDirection) { + // Remember the direction travelled so we can + // load the next or previous page if the touch is not released. + setInitialDirection = true; + direction = delta < 0 ? 1 : -1; } - - double drag = e.getTouchPoint().getX() - lastTouchPos; - long time = System.currentTimeMillis() - lastTouchTime; - touchVelocity = drag/time; - lastTouchPos = e.getTouchPoint().getX(); - lastTouchTime = System.currentTimeMillis(); - double delta = e.getTouchPoint().getX() - startTouchPos; - - if (!touchThresholdBroken && Math.abs(delta) > TOUCH_THRESHOLD) { - touchThresholdBroken = true; - } - - if (touchThresholdBroken) { - double width = control.getWidth() - (snappedLeftInset() + snappedRightInset()); - double currentPaneX; - double nextPaneX; - - if (!setInitialDirection) { - // Remember the direction travelled so we can - // load the next or previous page if the touch is not released. - setInitialDirection = true; - direction = delta < 0 ? 1 : -1; + if (delta < 0) { + if (direction == -1) { + nextStackPane.getChildren().clear(); + direction = 1; } - if (delta < 0) { - if (direction == -1) { - nextStackPane.getChildren().clear(); - direction = 1; - } - // right to left - if (Math.abs(delta) <= width) { - currentPaneX = delta; - nextPaneX = width + delta; - nextPageReached = false; - } else { - currentPaneX = -width; - nextPaneX = 0; - nextPageReached = true; - } - currentStackPane.setTranslateX(currentPaneX); - if (getCurrentPageIndex() < getPageCount() - 1) { - createPage(nextStackPane, currentIndex + 1); - nextStackPane.setVisible(true); - nextStackPane.setTranslateX(nextPaneX); - } else { - currentStackPane.setTranslateX(0); - } + // right to left + if (Math.abs(delta) <= width) { + currentPaneX = delta; + nextPaneX = width + delta; + nextPageReached = false; } else { - // left to right - if (direction == 1) { - nextStackPane.getChildren().clear(); - direction = -1; - } - if (Math.abs(delta) <= width) { - currentPaneX = delta; - nextPaneX = -width + delta; - nextPageReached = false; - } else { - currentPaneX = width; - nextPaneX = 0; - nextPageReached = true; - } - currentStackPane.setTranslateX(currentPaneX); - if (getCurrentPageIndex() != 0) { - createPage(nextStackPane, currentIndex - 1); - nextStackPane.setVisible(true); - nextStackPane.setTranslateX(nextPaneX); - } else { - currentStackPane.setTranslateX(0); - } + currentPaneX = -width; + nextPaneX = 0; + nextPageReached = true; + } + currentStackPane.setTranslateX(currentPaneX); + if (getCurrentPageIndex() < getPageCount() - 1) { + createPage(nextStackPane, currentIndex + 1); + nextStackPane.setVisible(true); + nextStackPane.setTranslateX(nextPaneX); + } else { + currentStackPane.setTranslateX(0); + } + } else { + // left to right + if (direction == 1) { + nextStackPane.getChildren().clear(); + direction = -1; + } + if (Math.abs(delta) <= width) { + currentPaneX = delta; + nextPaneX = -width + delta; + nextPageReached = false; + } else { + currentPaneX = width; + nextPaneX = 0; + nextPageReached = true; + } + currentStackPane.setTranslateX(currentPaneX); + if (getCurrentPageIndex() != 0) { + createPage(nextStackPane, currentIndex - 1); + nextStackPane.setVisible(true); + nextStackPane.setTranslateX(nextPaneX); + } else { + currentStackPane.setTranslateX(0); } } - e.consume(); } + e.consume(); }); - getSkinnable().setOnTouchReleased(new EventHandler() { - @Override public void handle(TouchEvent e) { - if (touchEventId != e.getTouchPoint().getId()) { - return; + getSkinnable().setOnTouchReleased(e -> { + if (touchEventId != e.getTouchPoint().getId()) { + return; + } else { + touchEventId = -1; + setInitialDirection = false; + } + + if (touchThresholdBroken) { + // determin if click or swipe + final double drag = e.getTouchPoint().getX() - startTouchPos; + // calculate complete time from start to end of drag + final long time = System.currentTimeMillis() - startTouchTime; + // if time is less than 300ms then considered a quick swipe and whole time is used + final boolean quick = time < 300; + // calculate velocity + final double velocity = quick ? (double)drag / time : touchVelocity; // pixels/ms + // calculate distance we would travel at this speed for 500ms of travel + final double distance = (velocity * 500); + final double width = control.getWidth() - (snappedLeftInset() + snappedRightInset()); + + // The swipe distance travelled. + final double threshold = Math.abs(distance/width); + // The touch and dragged distance travelled. + final double delta = Math.abs(drag/width); + if (threshold > SWIPE_THRESHOLD || delta > SWIPE_THRESHOLD) { + if (startTouchPos > e.getTouchPoint().getX()) { + selectNext(); + } else { + selectPrevious(); + } } else { - touchEventId = -1; - setInitialDirection = false; + animateClamping(startTouchPos > e.getTouchPoint().getSceneX()); } - - if (touchThresholdBroken) { - // determin if click or swipe - final double drag = e.getTouchPoint().getX() - startTouchPos; - // calculate complete time from start to end of drag - final long time = System.currentTimeMillis() - startTouchTime; - // if time is less than 300ms then considered a quick swipe and whole time is used - final boolean quick = time < 300; - // calculate velocity - final double velocity = quick ? (double)drag / time : touchVelocity; // pixels/ms - // calculate distance we would travel at this speed for 500ms of travel - final double distance = (velocity * 500); - final double width = control.getWidth() - (snappedLeftInset() + snappedRightInset()); - - // The swipe distance travelled. - final double threshold = Math.abs(distance/width); - // The touch and dragged distance travelled. - final double delta = Math.abs(drag/width); - if (threshold > SWIPE_THRESHOLD || delta > SWIPE_THRESHOLD) { - if (startTouchPos > e.getTouchPoint().getX()) { - selectNext(); - } else { - selectPrevious(); - } - } else { - animateClamping(startTouchPos > e.getTouchPoint().getSceneX()); - } - } - e.consume(); } + e.consume(); }); } @@ -405,49 +396,47 @@ currentStackPane.setCache(true); // wait one pulse then animate - Platform.runLater(new Runnable() { - @Override public void run() { - // We are handling a touch event if nextPane's translateX is not 0 - boolean useTranslateX = nextStackPane.getTranslateX() != 0; - if (currentAnimatedIndex > previousIndex) { // animate right to left - if (!useTranslateX) { - nextStackPane.setTranslateX(currentStackPane.getWidth()); - } - nextStackPane.setVisible(true); - timeline = new Timeline(); - KeyFrame k1 = new KeyFrame(Duration.millis(0), - new KeyValue(currentStackPane.translateXProperty(), - useTranslateX ? currentStackPane.getTranslateX() : 0, - interpolator), - new KeyValue(nextStackPane.translateXProperty(), - useTranslateX ? - nextStackPane.getTranslateX() : currentStackPane.getWidth(), interpolator)); - KeyFrame k2 = new KeyFrame(DURATION, - swipeAnimationEndEventHandler, - new KeyValue(currentStackPane.translateXProperty(), -currentStackPane.getWidth(), interpolator), - new KeyValue(nextStackPane.translateXProperty(), 0, interpolator)); - timeline.getKeyFrames().setAll(k1, k2); - timeline.play(); - } else { // animate left to right - if (!useTranslateX) { - nextStackPane.setTranslateX(-currentStackPane.getWidth()); - } - nextStackPane.setVisible(true); - timeline = new Timeline(); - KeyFrame k1 = new KeyFrame(Duration.millis(0), - new KeyValue(currentStackPane.translateXProperty(), - useTranslateX ? currentStackPane.getTranslateX() : 0, - interpolator), - new KeyValue(nextStackPane.translateXProperty(), - useTranslateX ? nextStackPane.getTranslateX() : -currentStackPane.getWidth(), - interpolator)); - KeyFrame k2 = new KeyFrame(DURATION, - swipeAnimationEndEventHandler, - new KeyValue(currentStackPane.translateXProperty(), currentStackPane.getWidth(), interpolator), - new KeyValue(nextStackPane.translateXProperty(), 0, interpolator)); - timeline.getKeyFrames().setAll(k1, k2); - timeline.play(); + Platform.runLater(() -> { + // We are handling a touch event if nextPane's translateX is not 0 + boolean useTranslateX = nextStackPane.getTranslateX() != 0; + if (currentAnimatedIndex > previousIndex) { // animate right to left + if (!useTranslateX) { + nextStackPane.setTranslateX(currentStackPane.getWidth()); } + nextStackPane.setVisible(true); + timeline = new Timeline(); + KeyFrame k1 = new KeyFrame(Duration.millis(0), + new KeyValue(currentStackPane.translateXProperty(), + useTranslateX ? currentStackPane.getTranslateX() : 0, + interpolator), + new KeyValue(nextStackPane.translateXProperty(), + useTranslateX ? + nextStackPane.getTranslateX() : currentStackPane.getWidth(), interpolator)); + KeyFrame k2 = new KeyFrame(DURATION, + swipeAnimationEndEventHandler, + new KeyValue(currentStackPane.translateXProperty(), -currentStackPane.getWidth(), interpolator), + new KeyValue(nextStackPane.translateXProperty(), 0, interpolator)); + timeline.getKeyFrames().setAll(k1, k2); + timeline.play(); + } else { // animate left to right + if (!useTranslateX) { + nextStackPane.setTranslateX(-currentStackPane.getWidth()); + } + nextStackPane.setVisible(true); + timeline = new Timeline(); + KeyFrame k1 = new KeyFrame(Duration.millis(0), + new KeyValue(currentStackPane.translateXProperty(), + useTranslateX ? currentStackPane.getTranslateX() : 0, + interpolator), + new KeyValue(nextStackPane.translateXProperty(), + useTranslateX ? nextStackPane.getTranslateX() : -currentStackPane.getWidth(), + interpolator)); + KeyFrame k2 = new KeyFrame(DURATION, + swipeAnimationEndEventHandler, + new KeyValue(currentStackPane.translateXProperty(), currentStackPane.getWidth(), interpolator), + new KeyValue(nextStackPane.translateXProperty(), 0, interpolator)); + timeline.getKeyFrames().setAll(k1, k2); + timeline.play(); } }); } @@ -657,13 +646,10 @@ // If we are in the middle of a page animation. // Speedup and finish the animation then update the page factory. timeline.setRate(8); - timeline.setOnFinished(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - resetIndexes(false); - navigation.initializePageIndicators(); - navigation.updatePageIndicators(); - } + timeline.setOnFinished(arg0 -> { + resetIndexes(false); + navigation.initializePageIndicators(); + navigation.updatePageIndicators(); }); return; } @@ -757,19 +743,17 @@ } }; minButtonSize = leftArrowButton.getFont().getSize() * 2; - leftArrowButton.fontProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue arg0, Font arg1, Font newFont) { - minButtonSize = newFont.getSize() * 2; - for(Node child: controlBox.getChildren()) { - ((Control)child).setMinSize(minButtonSize, minButtonSize); - // RT-33327 : min size is set on the toggle button but the - // pref size does not match as computed by LabeledSkinBase#computePrefHeight - // so setting the prefSize ensures the desired size on the button. - ((Control)child).setPrefSize(minButtonSize, minButtonSize); - } - // We want to relayout the indicator buttons because the size has changed. - requestLayout(); + leftArrowButton.fontProperty().addListener((arg0, arg1, newFont) -> { + minButtonSize = newFont.getSize() * 2; + for(Node child: controlBox.getChildren()) { + ((Control)child).setMinSize(minButtonSize, minButtonSize); + // RT-33327 : min size is set on the toggle button but the + // pref size does not match as computed by LabeledSkinBase#computePrefHeight + // so setting the prefSize ensures the desired size on the button. + ((Control)child).setPrefSize(minButtonSize, minButtonSize); } + // We want to relayout the indicator buttons because the size has changed. + requestLayout(); }); leftArrowButton.setMinSize(minButtonSize, minButtonSize); leftArrowButton.setPrefSize(minButtonSize, minButtonSize); @@ -811,49 +795,38 @@ updatePageIndex(); // listen to changes to arrowButtonGap and update margins - arrowButtonGap.addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - if (newValue.doubleValue() == 0) { - HBox.setMargin(leftArrowButton, null); - HBox.setMargin(rightArrowButton, null); + arrowButtonGap.addListener((observable, oldValue, newValue) -> { + if (newValue.doubleValue() == 0) { + HBox.setMargin(leftArrowButton, null); + HBox.setMargin(rightArrowButton, null); - } else { - HBox.setMargin(leftArrowButton, new Insets(0, snapSize(newValue.doubleValue()), 0, 0)); - HBox.setMargin(rightArrowButton, new Insets(0, 0, 0, snapSize(newValue.doubleValue()))); - } + } else { + HBox.setMargin(leftArrowButton, new Insets(0, snapSize(newValue.doubleValue()), 0, 0)); + HBox.setMargin(rightArrowButton, new Insets(0, 0, 0, snapSize(newValue.doubleValue()))); } }); } private void initializeNavigationHandlers() { - leftArrowButton.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - selectPrevious(); - requestLayout(); - } + leftArrowButton.setOnAction(arg0 -> { + selectPrevious(); + requestLayout(); }); - rightArrowButton.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - selectNext(); - requestLayout(); - } + rightArrowButton.setOnAction(arg0 -> { + selectNext(); + requestLayout(); }); - pagination.currentPageIndexProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue arg0, Number arg1, Number arg2) { - previousIndex = arg1.intValue(); - currentIndex = arg2.intValue(); - updatePageIndex(); - if (animate) { - currentAnimatedIndex = currentIndex; - animateSwitchPage(); - } else { - createPage(currentStackPane, currentIndex); - } + pagination.currentPageIndexProperty().addListener((arg0, arg1, arg2) -> { + previousIndex = arg1.intValue(); + currentIndex = arg2.intValue(); + updatePageIndex(); + if (animate) { + currentAnimatedIndex = currentIndex; + animateSwitchPage(); + } else { + createPage(currentStackPane, currentIndex); } }); } @@ -1220,11 +1193,8 @@ setIndicatorType(); setTooltipVisible(isTooltipVisible()); - getSkinnable().getStyleClass().addListener(new ListChangeListener() { - @Override - public void onChanged(Change change) { - setIndicatorType(); - } + getSkinnable().getStyleClass().addListener((ListChangeListener) change -> { + setIndicatorType(); }); setOnAction(new EventHandler() { @@ -1238,11 +1208,8 @@ } }); - tooltipVisibleProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue ov, Boolean oldValue, Boolean newValue) { - setTooltipVisible(newValue); - } + tooltipVisibleProperty().addListener((ov, oldValue, newValue) -> { + setTooltipVisible(newValue); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressBarSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressBarSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressBarSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressBarSkin.java @@ -217,53 +217,47 @@ public ProgressBarSkin(ProgressBar control) { super(control, new ProgressBarBehavior(control)); - InvalidationListener indeterminateListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - initialize(); - } + InvalidationListener indeterminateListener = valueModel -> { + initialize(); }; control.indeterminateProperty().addListener(indeterminateListener); - InvalidationListener visibilityListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (getSkinnable().isIndeterminate() && timelineNulled && indeterminateTimeline == null) { - timelineNulled = false; - createIndeterminateTimeline(); + InvalidationListener visibilityListener = valueModel -> { + if (getSkinnable().isIndeterminate() && timelineNulled && indeterminateTimeline == null) { + timelineNulled = false; + createIndeterminateTimeline(); + } + + if (indeterminateTimeline != null) { + if (getSkinnable().impl_isTreeVisible() && getSkinnable().getScene() != null) { + indeterminateTimeline.play(); } - - if (indeterminateTimeline != null) { - if (getSkinnable().impl_isTreeVisible() && getSkinnable().getScene() != null) { - indeterminateTimeline.play(); - } - else { - indeterminateTimeline.pause(); - indeterminateTimeline = null; - timelineNulled = true; - } + else { + indeterminateTimeline.pause(); + indeterminateTimeline = null; + timelineNulled = true; } } }; control.visibleProperty().addListener(visibilityListener); control.parentProperty().addListener(visibilityListener); - InvalidationListener sceneListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (indeterminateTimeline != null) { - if (getSkinnable().getScene() == null) { - indeterminateTimeline.pause(); - indeterminateTimeline = null; - timelineNulled = true; + InvalidationListener sceneListener = valueModel -> { + if (indeterminateTimeline != null) { + if (getSkinnable().getScene() == null) { + indeterminateTimeline.pause(); + indeterminateTimeline = null; + timelineNulled = true; + } + } + else { + if (getSkinnable().getScene() != null && getSkinnable().isIndeterminate()) { + timelineNulled = false; + createIndeterminateTimeline(); + if (getSkinnable().impl_isTreeVisible()) { + indeterminateTimeline.play(); } - } - else { - if (getSkinnable().getScene() != null && getSkinnable().isIndeterminate()) { - timelineNulled = false; - createIndeterminateTimeline(); - if (getSkinnable().impl_isTreeVisible()) { - indeterminateTimeline.play(); - } - getSkinnable().requestLayout(); - } + getSkinnable().requestLayout(); } } }; @@ -272,10 +266,8 @@ barWidth = ((int) (control.getWidth() - snappedLeftInset() - snappedRightInset()) * 2 * Math.min(1, Math.max(0, control.getProgress()))) / 2.0F; - InvalidationListener listener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateProgress(); - } + InvalidationListener listener = valueModel -> { + updateProgress(); }; control.widthProperty().addListener(listener); control.progressProperty().addListener(listener); @@ -300,18 +292,17 @@ // listen to the backgrounds on the bar and apply them to the clip but making them solid black for 100% // solid anywhere the bar draws bar.backgroundProperty().addListener( - new ChangeListener() { - @Override public void changed(ObservableValue observable, Background oldValue, Background newValue) { - if (newValue != null && !newValue.getFills().isEmpty()) { - final BackgroundFill[] fills = new BackgroundFill[newValue.getFills().size()]; - for (int i = 0; i < newValue.getFills().size(); i++) { - BackgroundFill bf = newValue.getFills().get(i); - fills[i] = new BackgroundFill(Color.BLACK,bf.getRadii(),bf.getInsets()); - } - clipRegion.setBackground(new Background(fills)); + (observable, oldValue, newValue) -> { + if (newValue != null && !newValue.getFills().isEmpty()) { + final BackgroundFill[] fills = new BackgroundFill[newValue.getFills().size()]; + for (int i = 0; i < newValue.getFills().size(); i++) { + BackgroundFill bf = newValue.getFills().get(i); + fills[i] = new BackgroundFill(Color.BLACK,bf.getRadii(),bf.getInsets()); } + clipRegion.setBackground(new Background(fills)); } - }); + } + ); } void pauseBar(boolean pause) { @@ -330,16 +321,14 @@ Bar(ProgressBarSkin pb) { super(); pbSkin = pb; - InvalidationListener treeVisibilityListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (getSkinnable().impl_isTreeVisible()) { - pbSkin.pauseBar(false); - } - else { - pbSkin.pauseBar(true); - } - } - }; + InvalidationListener treeVisibilityListener = valueModel -> { + if (getSkinnable().impl_isTreeVisible()) { + pbSkin.pauseBar(false); + } + else { + pbSkin.pauseBar(true); + } + }; impl_treeVisibleProperty().addListener(treeVisibilityListener); } } @@ -417,43 +406,37 @@ indeterminateTimeline.getKeyFrames().addAll( new KeyFrame( Duration.millis(0), - new EventHandler() { - @Override public void handle(ActionEvent event) { - bar.setScaleX(-1); + event -> { + bar.setScaleX(-1); - /** - * Stop the animation if the ProgressBar is removed - * from a Scene, or is invisible. - * Pause the animation if it's outside of a clipped - * region (e.g. not visible in a ScrollPane) - */ - if (indeterminateTimeline != null) { - stopIfInvisibleOrDisconnected(); - if (!isVisibleInClip()) { - Platform.runLater(new Runnable() { - @Override public void run() { - if (indeterminateTimeline != null) { - if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(CLIPPED_DELAY); - } - indeterminateTimeline.stop(); - indeterminateTimeline.jumpTo(Duration.ZERO); - indeterminateTimeline.play(); - } - } - }); - } - else { - Platform.runLater(new Runnable() { - @Override public void run() { - if (indeterminateTimeline != null) { - if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(UNCLIPPED_DELAY); - } - } - } - }); - } + /** + * Stop the animation if the ProgressBar is removed + * from a Scene, or is invisible. + * Pause the animation if it's outside of a clipped + * region (e.g. not visible in a ScrollPane) + */ + if (indeterminateTimeline != null) { + stopIfInvisibleOrDisconnected(); + if (!isVisibleInClip()) { + Platform.runLater(() -> { + if (indeterminateTimeline != null) { + if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(CLIPPED_DELAY); + } + indeterminateTimeline.stop(); + indeterminateTimeline.jumpTo(Duration.ZERO); + indeterminateTimeline.play(); + } + }); + } + else { + Platform.runLater(() -> { + if (indeterminateTimeline != null) { + if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(UNCLIPPED_DELAY); + } + } + }); } } }, @@ -461,10 +444,8 @@ ), new KeyFrame( Duration.millis(getIndeterminateBarAnimationTime() * 1000), - new EventHandler() { - @Override public void handle(ActionEvent event) { - bar.setScaleX(1); } - }, + event -> { + bar.setScaleX(1); }, new KeyValue(bar.translateXProperty(), endX) ), new KeyFrame( @@ -479,42 +460,36 @@ indeterminateTimeline.getKeyFrames().addAll( new KeyFrame( Duration.millis(0), - new EventHandler() { - @Override public void handle(ActionEvent event) { - bar.setScaleX(-1); - /** - * Stop the animation if the ProgressBar is removed - * from a Scene, or is invisible. - * Pause the animation if it's outside of a clipped - * region (e.g. not visible in a ScrollPane) - */ - if (indeterminateTimeline != null) { - stopIfInvisibleOrDisconnected(); - if (!isVisibleInClip()) { - Platform.runLater(new Runnable() { - @Override public void run() { - if (indeterminateTimeline != null) { - if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(CLIPPED_DELAY); - } - indeterminateTimeline.stop(); - indeterminateTimeline.jumpTo(Duration.ZERO); - indeterminateTimeline.play(); - } - } - }); - } - else { - Platform.runLater(new Runnable() { - @Override public void run() { - if (indeterminateTimeline != null) { - if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(UNCLIPPED_DELAY); - } - } - } - }); - } + event -> { + bar.setScaleX(-1); + /** + * Stop the animation if the ProgressBar is removed + * from a Scene, or is invisible. + * Pause the animation if it's outside of a clipped + * region (e.g. not visible in a ScrollPane) + */ + if (indeterminateTimeline != null) { + stopIfInvisibleOrDisconnected(); + if (!isVisibleInClip()) { + Platform.runLater(() -> { + if (indeterminateTimeline != null) { + if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(CLIPPED_DELAY); + } + indeterminateTimeline.stop(); + indeterminateTimeline.jumpTo(Duration.ZERO); + indeterminateTimeline.play(); + } + }); + } + else { + Platform.runLater(() -> { + if (indeterminateTimeline != null) { + if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(UNCLIPPED_DELAY); + } + } + }); } } }, diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java @@ -170,10 +170,8 @@ **************************************************************************/ // Listen to ProgressIndicator indeterminateProperty - private final InvalidationListener indeterminateListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - initialize(); - } + private final InvalidationListener indeterminateListener = valueModel -> { + initialize(); }; private final InvalidationListener progressListener = new InvalidationListener() { @@ -406,26 +404,23 @@ private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { // does not need to be a weak listener since it only listens to its own property - impl_treeVisibleProperty().addListener(new InvalidationListener() { - @Override - public void invalidated(Observable observable) { + impl_treeVisibleProperty().addListener(observable -> { - final boolean isVisible = ((BooleanExpression)observable).getValue(); - if (indeterminateTimeline != null) { - if (isVisible) { - indeterminateTimeline.play(); - } - else { - indeterminateTimeline.pause(); - } + final boolean isVisible = ((BooleanExpression)observable).getValue(); + if (indeterminateTimeline != null) { + if (isVisible) { + indeterminateTimeline.play(); } - else if (isVisible) { - indeterminateTimeline = new Timeline(); - indeterminateTimeline.setCycleCount(Timeline.INDEFINITE); - indeterminateTimeline.setDelay(UNCLIPPED_DELAY); - rebuildTimeline(); + else { + indeterminateTimeline.pause(); } } + else if (isVisible) { + indeterminateTimeline = new Timeline(); + indeterminateTimeline.setCycleCount(Timeline.INDEFINITE); + indeterminateTimeline.setDelay(UNCLIPPED_DELAY); + rebuildTimeline(); + } }); this.spinEnabled = spinEnabled; this.fillOverride = fillOverride; @@ -504,31 +499,30 @@ final ObservableList keyFrames = FXCollections.observableArrayList(); keyFrames.add( new KeyFrame( - Duration.millis(0), new EventHandler() { - @Override public void handle(ActionEvent event) { - /** - * Stop the animation if the ProgressBar is removed - * from a Scene, or is invisible. - * Pause the animation if it's outside of a clipped - * region (e.g. not visible in a ScrollPane) - */ - if (indeterminateTimeline != null) { - if (stopIfDisconnected()) { - return; - } - if (!isVisibleInClip()) { - if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(CLIPPED_DELAY); - } - } - else { - if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { - indeterminateTimeline.setDelay(UNCLIPPED_DELAY); - } - } - } - } - })); + Duration.millis(0), event -> { + /** + * Stop the animation if the ProgressBar is removed + * from a Scene, or is invisible. + * Pause the animation if it's outside of a clipped + * region (e.g. not visible in a ScrollPane) + */ + if (indeterminateTimeline != null) { + if (stopIfDisconnected()) { + return; + } + if (!isVisibleInClip()) { + if (indeterminateTimeline.getDelay().compareTo(CLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(CLIPPED_DELAY); + } + } + else { + if (indeterminateTimeline.getDelay().compareTo(UNCLIPPED_DELAY) != 0) { + indeterminateTimeline.setDelay(UNCLIPPED_DELAY); + } + } + } + } + )); if(spinEnabled) { keyFrames.add(new KeyFrame(Duration.millis(1), new KeyValue(pathsG.rotateProperty(), 360))); keyFrames.add(new KeyFrame(Duration.millis(3900), new KeyValue(pathsG.rotateProperty(), 0))); @@ -537,11 +531,10 @@ for (int i = 100; i <= 3900; i += 100) { keyFrames.add( new KeyFrame( - Duration.millis(i), new EventHandler() { - @Override public void handle(ActionEvent event) { - shiftColors(); - } - })); + Duration.millis(i), event -> { + shiftColors(); + } + )); } indeterminateTimeline.getKeyFrames().setAll(keyFrames); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollBarSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollBarSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollBarSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollBarSkin.java @@ -148,27 +148,23 @@ } } }; - incButton.setOnMousePressed(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - /* - ** if the tracklenght isn't greater than do nothing.... - */ - if (!thumb.isVisible() || trackLength > thumbLength) { - getBehavior().incButtonPressed(); - } - me.consume(); - } + incButton.setOnMousePressed(me -> { + /* + ** if the tracklenght isn't greater than do nothing.... + */ + if (!thumb.isVisible() || trackLength > thumbLength) { + getBehavior().incButtonPressed(); + } + me.consume(); }); - incButton.setOnMouseReleased(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - /* - ** if the tracklenght isn't greater than do nothing.... - */ - if (!thumb.isVisible() || trackLength > thumbLength) { - getBehavior().incButtonReleased(); - } - me.consume(); - } + incButton.setOnMouseReleased(me -> { + /* + ** if the tracklenght isn't greater than do nothing.... + */ + if (!thumb.isVisible() || trackLength > thumbLength) { + getBehavior().incButtonReleased(); + } + me.consume(); }); decButton = new EndButton("decrement-button", "decrement-arrow") { @@ -190,83 +186,109 @@ } } }; - decButton.setOnMousePressed(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - /* - ** if the tracklenght isn't greater than do nothing.... - */ - if (!thumb.isVisible() || trackLength > thumbLength) { - getBehavior().decButtonPressed(); - } - me.consume(); - } + decButton.setOnMousePressed(me -> { + /* + ** if the tracklenght isn't greater than do nothing.... + */ + if (!thumb.isVisible() || trackLength > thumbLength) { + getBehavior().decButtonPressed(); + } + me.consume(); }); - decButton.setOnMouseReleased(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - /* - ** if the tracklenght isn't greater than do nothing.... - */ - if (!thumb.isVisible() || trackLength > thumbLength) { - getBehavior().decButtonReleased(); - } - me.consume(); - } + decButton.setOnMouseReleased(me -> { + /* + ** if the tracklenght isn't greater than do nothing.... + */ + if (!thumb.isVisible() || trackLength > thumbLength) { + getBehavior().decButtonReleased(); + } + me.consume(); }); } - track.setOnMousePressed( new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - if (!thumb.isPressed() && me.getButton() == MouseButton.PRIMARY) { - if (getSkinnable().getOrientation() == Orientation.VERTICAL) { - if (trackLength != 0) { - getBehavior().trackPress(me.getY() / trackLength); - me.consume(); - } - } else { - if (trackLength != 0) { - getBehavior().trackPress(me.getX() / trackLength); - me.consume(); - } - } - } - } + track.setOnMousePressed(me -> { + if (!thumb.isPressed() && me.getButton() == MouseButton.PRIMARY) { + if (getSkinnable().getOrientation() == Orientation.VERTICAL) { + if (trackLength != 0) { + getBehavior().trackPress(me.getY() / trackLength); + me.consume(); + } + } else { + if (trackLength != 0) { + getBehavior().trackPress(me.getX() / trackLength); + me.consume(); + } + } + } }); - track.setOnMouseReleased( new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - getBehavior().trackRelease(); + track.setOnMouseReleased(me -> { + getBehavior().trackRelease(); + me.consume(); + }); + + thumb.setOnMousePressed(me -> { + if (me.isSynthesized()) { + // touch-screen events handled by Scroll handler + me.consume(); + return; + } + /* + ** if max isn't greater than min then there is nothing to do here + */ + if (getSkinnable().getMax() > getSkinnable().getMin()) { + dragStart = thumb.localToParent(me.getX(), me.getY()); + double clampedValue = Utils.clamp(getSkinnable().getMin(), getSkinnable().getValue(), getSkinnable().getMax()); + preDragThumbPos = (clampedValue - getSkinnable().getMin()) / (getSkinnable().getMax() - getSkinnable().getMin()); me.consume(); } }); - thumb.setOnMousePressed(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - if (me.isSynthesized()) { - // touch-screen events handled by Scroll handler - me.consume(); - return; + + thumb.setOnMouseDragged(me -> { + if (me.isSynthesized()) { + // touch-screen events handled by Scroll handler + me.consume(); + return; + } + /* + ** if max isn't greater than min then there is nothing to do here + */ + if (getSkinnable().getMax() > getSkinnable().getMin()) { + /* + ** if the tracklength isn't greater then do nothing.... + */ + if (trackLength > thumbLength) { + Point2D cur = thumb.localToParent(me.getX(), me.getY()); + if (dragStart == null) { + // we're getting dragged without getting a mouse press + dragStart = thumb.localToParent(me.getX(), me.getY()); + } + double dragPos = getSkinnable().getOrientation() == Orientation.VERTICAL ? cur.getY() - dragStart.getY(): cur.getX() - dragStart.getX(); + getBehavior().thumbDragged(preDragThumbPos + dragPos / (trackLength - thumbLength)); } + + me.consume(); + } + }); + + thumb.setOnScrollStarted(se -> { + if (se.isDirect()) { /* ** if max isn't greater than min then there is nothing to do here */ if (getSkinnable().getMax() > getSkinnable().getMin()) { - dragStart = thumb.localToParent(me.getX(), me.getY()); + dragStart = thumb.localToParent(se.getX(), se.getY()); double clampedValue = Utils.clamp(getSkinnable().getMin(), getSkinnable().getValue(), getSkinnable().getMax()); preDragThumbPos = (clampedValue - getSkinnable().getMin()) / (getSkinnable().getMax() - getSkinnable().getMin()); - me.consume(); + se.consume(); } } }); - - thumb.setOnMouseDragged(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent me) { - if (me.isSynthesized()) { - // touch-screen events handled by Scroll handler - me.consume(); - return; - } + thumb.setOnScroll(event -> { + if (event.isDirect()) { /* ** if max isn't greater than min then there is nothing to do here */ @@ -275,108 +297,64 @@ ** if the tracklength isn't greater then do nothing.... */ if (trackLength > thumbLength) { - Point2D cur = thumb.localToParent(me.getX(), me.getY()); + Point2D cur = thumb.localToParent(event.getX(), event.getY()); if (dragStart == null) { // we're getting dragged without getting a mouse press - dragStart = thumb.localToParent(me.getX(), me.getY()); + dragStart = thumb.localToParent(event.getX(), event.getY()); } double dragPos = getSkinnable().getOrientation() == Orientation.VERTICAL ? cur.getY() - dragStart.getY(): cur.getX() - dragStart.getX(); - getBehavior().thumbDragged(preDragThumbPos + dragPos / (trackLength - thumbLength)); + getBehavior().thumbDragged(/*todo*/ preDragThumbPos + dragPos / (trackLength - thumbLength)); } - me.consume(); + event.consume(); + return; } } }); - thumb.setOnScrollStarted(new EventHandler() { - @Override public void handle(javafx.scene.input.ScrollEvent se) { - if (se.isDirect()) { - /* - ** if max isn't greater than min then there is nothing to do here - */ - if (getSkinnable().getMax() > getSkinnable().getMin()) { - dragStart = thumb.localToParent(se.getX(), se.getY()); - double clampedValue = Utils.clamp(getSkinnable().getMin(), getSkinnable().getValue(), getSkinnable().getMax()); - preDragThumbPos = (clampedValue - getSkinnable().getMin()) / (getSkinnable().getMax() - getSkinnable().getMin()); - se.consume(); + + getSkinnable().setOnScroll(event -> { + /* + ** if the tracklength isn't greater then do nothing.... + */ + if (trackLength > thumbLength) { + + double dx = event.getDeltaX(); + double dy = event.getDeltaY(); + + /* + ** in 2.0 a horizontal scrollbar would scroll on a vertical + ** drag on a tracker-pad. We need to keep this behavior. + */ + dx = (Math.abs(dx) < Math.abs(dy) ? dy : dx); + + /* + ** we only consume an event that we've used. + */ + ScrollBar sb = (ScrollBar) getSkinnable(); + + double delta = (getSkinnable().getOrientation() == Orientation.VERTICAL ? dy : dx); + + /* + ** RT-22941 - If this is either a touch or inertia scroll + ** then we move to the position of the touch point. + * + * TODO: this fix causes RT-23406 ([ScrollBar, touch] Dragging scrollbar from the + * track on touchscreen causes flickering) + */ + if (event.isDirect()) { + if (trackLength > thumbLength) { + getBehavior().thumbDragged((getSkinnable().getOrientation() == Orientation.VERTICAL ? event.getY(): event.getX()) / trackLength); + event.consume(); } } - } - }); - - thumb.setOnScroll(new EventHandler() { - @Override public void handle(ScrollEvent event) { - if (event.isDirect()) { - /* - ** if max isn't greater than min then there is nothing to do here - */ - if (getSkinnable().getMax() > getSkinnable().getMin()) { - /* - ** if the tracklength isn't greater then do nothing.... - */ - if (trackLength > thumbLength) { - Point2D cur = thumb.localToParent(event.getX(), event.getY()); - if (dragStart == null) { - // we're getting dragged without getting a mouse press - dragStart = thumb.localToParent(event.getX(), event.getY()); - } - double dragPos = getSkinnable().getOrientation() == Orientation.VERTICAL ? cur.getY() - dragStart.getY(): cur.getX() - dragStart.getX(); - getBehavior().thumbDragged(/*todo*/ preDragThumbPos + dragPos / (trackLength - thumbLength)); - } - + else { + if (delta > 0.0 && sb.getValue() > sb.getMin()) { + sb.decrement(); event.consume(); - return; - } - } - } - }); - - - getSkinnable().setOnScroll(new EventHandler() { - @Override public void handle(ScrollEvent event) { - /* - ** if the tracklength isn't greater then do nothing.... - */ - if (trackLength > thumbLength) { - - double dx = event.getDeltaX(); - double dy = event.getDeltaY(); - - /* - ** in 2.0 a horizontal scrollbar would scroll on a vertical - ** drag on a tracker-pad. We need to keep this behavior. - */ - dx = (Math.abs(dx) < Math.abs(dy) ? dy : dx); - - /* - ** we only consume an event that we've used. - */ - ScrollBar sb = (ScrollBar) getSkinnable(); - - double delta = (getSkinnable().getOrientation() == Orientation.VERTICAL ? dy : dx); - - /* - ** RT-22941 - If this is either a touch or inertia scroll - ** then we move to the position of the touch point. - * - * TODO: this fix causes RT-23406 ([ScrollBar, touch] Dragging scrollbar from the - * track on touchscreen causes flickering) - */ - if (event.isDirect()) { - if (trackLength > thumbLength) { - getBehavior().thumbDragged((getSkinnable().getOrientation() == Orientation.VERTICAL ? event.getY(): event.getX()) / trackLength); - event.consume(); - } - } - else { - if (delta > 0.0 && sb.getValue() > sb.getMin()) { - sb.decrement(); - event.consume(); - } else if (delta < 0.0 && sb.getValue() < sb.getMax()) { - sb.increment(); - event.consume(); - } + } else if (delta < 0.0 && sb.getValue() < sb.getMax()) { + sb.increment(); + event.consume(); } } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java @@ -311,148 +311,136 @@ /* ** listeners, and assorted housekeeping */ - InvalidationListener vsbListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (!IS_TOUCH_SUPPORTED) { - posY = Utils.clamp(getSkinnable().getVmin(), vsb.getValue(), getSkinnable().getVmax()); - } - else { - posY = vsb.getValue(); - } - updatePosY(); + InvalidationListener vsbListener = valueModel -> { + if (!IS_TOUCH_SUPPORTED) { + posY = Utils.clamp(getSkinnable().getVmin(), vsb.getValue(), getSkinnable().getVmax()); } + else { + posY = vsb.getValue(); + } + updatePosY(); }; vsb.valueProperty().addListener(vsbListener); - InvalidationListener hsbListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (!IS_TOUCH_SUPPORTED) { - posX = Utils.clamp(getSkinnable().getHmin(), hsb.getValue(), getSkinnable().getHmax()); - } - else { - posX = hsb.getValue(); - } - updatePosX(); + InvalidationListener hsbListener = valueModel -> { + if (!IS_TOUCH_SUPPORTED) { + posX = Utils.clamp(getSkinnable().getHmin(), hsb.getValue(), getSkinnable().getHmax()); } + else { + posX = hsb.getValue(); + } + updatePosX(); }; hsb.valueProperty().addListener(hsbListener); - viewRect.setOnMousePressed(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent e) { - mouseDown = true; - if (IS_TOUCH_SUPPORTED) { - startSBReleasedAnimation(); - } - pressX = e.getX(); - pressY = e.getY(); - ohvalue = hsb.getValue(); - ovvalue = vsb.getValue(); - } + viewRect.setOnMousePressed(e -> { + mouseDown = true; + if (IS_TOUCH_SUPPORTED) { + startSBReleasedAnimation(); + } + pressX = e.getX(); + pressY = e.getY(); + ohvalue = hsb.getValue(); + ovvalue = vsb.getValue(); }); - viewRect.setOnDragDetected(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent e) { - if (IS_TOUCH_SUPPORTED) { - startSBReleasedAnimation(); - } - if (getSkinnable().isPannable()) { - dragDetected = true; - if (saveCursor == null) { - saveCursor = getSkinnable().getCursor(); - if (saveCursor == null) { - saveCursor = Cursor.DEFAULT; - } - getSkinnable().setCursor(Cursor.MOVE); + viewRect.setOnDragDetected(e -> { + if (IS_TOUCH_SUPPORTED) { + startSBReleasedAnimation(); + } + if (getSkinnable().isPannable()) { + dragDetected = true; + if (saveCursor == null) { + saveCursor = getSkinnable().getCursor(); + if (saveCursor == null) { + saveCursor = Cursor.DEFAULT; + } + getSkinnable().setCursor(Cursor.MOVE); + getSkinnable().requestLayout(); + } + } + }); + + viewRect.addEventFilter(MouseEvent.MOUSE_RELEASED, e -> { + mouseDown = false; + if (dragDetected == true) { + if (saveCursor != null) { + getSkinnable().setCursor(saveCursor); + saveCursor = null; getSkinnable().requestLayout(); } - } - } + dragDetected = false; + } + + /* + ** if the contents need repositioning, and there's is no + ** touch event in progress, then start the repositioning. + */ + if ((posY > getSkinnable().getVmax() || posY < getSkinnable().getVmin() || + posX > getSkinnable().getHmax() || posX < getSkinnable().getHmin()) && !touchDetected) { + startContentsToViewport(); + } }); - - viewRect.addEventFilter(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override public void handle(MouseEvent e) { - mouseDown = false; - if (dragDetected == true) { - if (saveCursor != null) { - getSkinnable().setCursor(saveCursor); - saveCursor = null; - getSkinnable().requestLayout(); - } - dragDetected = false; - } - - /* - ** if the contents need repositioning, and there's is no - ** touch event in progress, then start the repositioning. - */ - if ((posY > getSkinnable().getVmax() || posY < getSkinnable().getVmin() || - posX > getSkinnable().getHmax() || posX < getSkinnable().getHmin()) && !touchDetected) { - startContentsToViewport(); - } + viewRect.setOnMouseDragged(e -> { + if (IS_TOUCH_SUPPORTED) { + startSBReleasedAnimation(); + } + /* + ** for mobile-touch we allow drag, even if not pannagle + */ + if (getSkinnable().isPannable() || IS_TOUCH_SUPPORTED) { + double deltaX = pressX - e.getX(); + double deltaY = pressY - e.getY(); + /* + ** we only drag if not all of the content is visible. + */ + if (hsb.getVisibleAmount() > 0.0 && hsb.getVisibleAmount() < hsb.getMax()) { + if (Math.abs(deltaX) > PAN_THRESHOLD) { + if (isReverseNodeOrientation()) { + deltaX = -deltaX; + } + double newHVal = (ohvalue + deltaX / (nodeWidth - viewRect.getWidth()) * (hsb.getMax() - hsb.getMin())); + if (!IS_TOUCH_SUPPORTED) { + if (newHVal > hsb.getMax()) { + newHVal = hsb.getMax(); + } + else if (newHVal < hsb.getMin()) { + newHVal = hsb.getMin(); + } + hsb.setValue(newHVal); + } + else { + hsb.setValue(newHVal); + } + } + } + /* + ** we only drag if not all of the content is visible. + */ + if (vsb.getVisibleAmount() > 0.0 && vsb.getVisibleAmount() < vsb.getMax()) { + if (Math.abs(deltaY) > PAN_THRESHOLD) { + double newVVal = (ovvalue + deltaY / (nodeHeight - viewRect.getHeight()) * (vsb.getMax() - vsb.getMin())); + if (!IS_TOUCH_SUPPORTED) { + if (newVVal > vsb.getMax()) { + newVVal = vsb.getMax(); + } + else if (newVVal < vsb.getMin()) { + newVVal = vsb.getMin(); + } + vsb.setValue(newVVal); + } + else { + vsb.setValue(newVVal); + } + } + } } - }); - viewRect.setOnMouseDragged(new EventHandler() { - @Override public void handle(javafx.scene.input.MouseEvent e) { - if (IS_TOUCH_SUPPORTED) { - startSBReleasedAnimation(); - } - /* - ** for mobile-touch we allow drag, even if not pannagle - */ - if (getSkinnable().isPannable() || IS_TOUCH_SUPPORTED) { - double deltaX = pressX - e.getX(); - double deltaY = pressY - e.getY(); - /* - ** we only drag if not all of the content is visible. - */ - if (hsb.getVisibleAmount() > 0.0 && hsb.getVisibleAmount() < hsb.getMax()) { - if (Math.abs(deltaX) > PAN_THRESHOLD) { - if (isReverseNodeOrientation()) { - deltaX = -deltaX; - } - double newHVal = (ohvalue + deltaX / (nodeWidth - viewRect.getWidth()) * (hsb.getMax() - hsb.getMin())); - if (!IS_TOUCH_SUPPORTED) { - if (newHVal > hsb.getMax()) { - newHVal = hsb.getMax(); - } - else if (newHVal < hsb.getMin()) { - newHVal = hsb.getMin(); - } - hsb.setValue(newHVal); - } - else { - hsb.setValue(newHVal); - } - } - } - /* - ** we only drag if not all of the content is visible. - */ - if (vsb.getVisibleAmount() > 0.0 && vsb.getVisibleAmount() < vsb.getMax()) { - if (Math.abs(deltaY) > PAN_THRESHOLD) { - double newVVal = (ovvalue + deltaY / (nodeHeight - viewRect.getHeight()) * (vsb.getMax() - vsb.getMin())); - if (!IS_TOUCH_SUPPORTED) { - if (newVVal > vsb.getMax()) { - newVVal = vsb.getMax(); - } - else if (newVVal < vsb.getMin()) { - newVVal = vsb.getMin(); - } - vsb.setValue(newVVal); - } - else { - vsb.setValue(newVVal); - } - } - } - } - /* - ** we need to consume drag events, as we don't want - ** the scrollpane itself to be dragged on every mouse click - */ - e.consume(); - } + /* + ** we need to consume drag events, as we don't want + ** the scrollpane itself to be dragged on every mouse click + */ + e.consume(); }); @@ -461,37 +449,28 @@ ** In a ScrollPane a vertical scroll should scroll on the vertical only, ** whereas in a horizontal ScrollBar it can scroll horizontally. */ - final EventDispatcher blockEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - // block the event from being passed down to children - return event; - } - }; + final EventDispatcher blockEventDispatcher = (event, tail) -> event; // block ScrollEvent from being passed down to scrollbar's skin final EventDispatcher oldHsbEventDispatcher = hsb.getEventDispatcher(); - hsb.setEventDispatcher(new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if (event.getEventType() == ScrollEvent.SCROLL && - !((ScrollEvent)event).isDirect()) { - tail = tail.prepend(blockEventDispatcher); - tail = tail.prepend(oldHsbEventDispatcher); - return tail.dispatchEvent(event); - } - return oldHsbEventDispatcher.dispatchEvent(event, tail); - } + hsb.setEventDispatcher((event, tail) -> { + if (event.getEventType() == ScrollEvent.SCROLL && + !((ScrollEvent)event).isDirect()) { + tail = tail.prepend(blockEventDispatcher); + tail = tail.prepend(oldHsbEventDispatcher); + return tail.dispatchEvent(event); + } + return oldHsbEventDispatcher.dispatchEvent(event, tail); }); // block ScrollEvent from being passed down to scrollbar's skin final EventDispatcher oldVsbEventDispatcher = vsb.getEventDispatcher(); - vsb.setEventDispatcher(new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if (event.getEventType() == ScrollEvent.SCROLL && - !((ScrollEvent)event).isDirect()) { - tail = tail.prepend(blockEventDispatcher); - tail = tail.prepend(oldVsbEventDispatcher); - return tail.dispatchEvent(event); - } - return oldVsbEventDispatcher.dispatchEvent(event, tail); - } + vsb.setEventDispatcher((event, tail) -> { + if (event.getEventType() == ScrollEvent.SCROLL && + !((ScrollEvent)event).isDirect()) { + tail = tail.prepend(blockEventDispatcher); + tail = tail.prepend(oldVsbEventDispatcher); + return tail.dispatchEvent(event); + } + return oldVsbEventDispatcher.dispatchEvent(event, tail); }); /* @@ -499,78 +478,76 @@ ** area, the above dispatcher having removed the ScrollBars ** scroll event handling. */ - getSkinnable().addEventHandler(ScrollEvent.SCROLL, new EventHandler() { - @Override public void handle(ScrollEvent event) { - if (IS_TOUCH_SUPPORTED) { - startSBReleasedAnimation(); + getSkinnable().addEventHandler(ScrollEvent.SCROLL, event -> { + if (IS_TOUCH_SUPPORTED) { + startSBReleasedAnimation(); + } + /* + ** if we're completely visible then do nothing.... + ** we only consume an event that we've used. + */ + if (vsb.getVisibleAmount() < vsb.getMax()) { + double vRange = getSkinnable().getVmax()-getSkinnable().getVmin(); + double vPixelValue; + if (nodeHeight > 0.0) { + vPixelValue = vRange / nodeHeight; } - /* - ** if we're completely visible then do nothing.... - ** we only consume an event that we've used. - */ - if (vsb.getVisibleAmount() < vsb.getMax()) { - double vRange = getSkinnable().getVmax()-getSkinnable().getVmin(); - double vPixelValue; - if (nodeHeight > 0.0) { - vPixelValue = vRange / nodeHeight; - } - else { - vPixelValue = 0.0; - } - double newValue = vsb.getValue()+(-event.getDeltaY())*vPixelValue; - if (!IS_TOUCH_SUPPORTED) { - if ((event.getDeltaY() > 0.0 && vsb.getValue() > vsb.getMin()) || - (event.getDeltaY() < 0.0 && vsb.getValue() < vsb.getMax())) { - vsb.setValue(newValue); - event.consume(); - } - } - else { - /* - ** if there is a repositioning in progress then we only - ** set the value for 'real' events - */ - if (!(((ScrollEvent)event).isInertia()) || (((ScrollEvent)event).isInertia()) && (contentsToViewTimeline == null || contentsToViewTimeline.getStatus() == Status.STOPPED)) { - vsb.setValue(newValue); - if ((newValue > vsb.getMax() || newValue < vsb.getMin()) && (!mouseDown && !touchDetected)) { - startContentsToViewport(); - } - event.consume(); - } + else { + vPixelValue = 0.0; + } + double newValue = vsb.getValue()+(-event.getDeltaY())*vPixelValue; + if (!IS_TOUCH_SUPPORTED) { + if ((event.getDeltaY() > 0.0 && vsb.getValue() > vsb.getMin()) || + (event.getDeltaY() < 0.0 && vsb.getValue() < vsb.getMax())) { + vsb.setValue(newValue); + event.consume(); } } + else { + /* + ** if there is a repositioning in progress then we only + ** set the value for 'real' events + */ + if (!(((ScrollEvent)event).isInertia()) || (((ScrollEvent)event).isInertia()) && (contentsToViewTimeline == null || contentsToViewTimeline.getStatus() == Status.STOPPED)) { + vsb.setValue(newValue); + if ((newValue > vsb.getMax() || newValue < vsb.getMin()) && (!mouseDown && !touchDetected)) { + startContentsToViewport(); + } + event.consume(); + } + } + } - if (hsb.getVisibleAmount() < hsb.getMax()) { - double hRange = getSkinnable().getHmax()-getSkinnable().getHmin(); - double hPixelValue; - if (nodeWidth > 0.0) { - hPixelValue = hRange / nodeWidth; + if (hsb.getVisibleAmount() < hsb.getMax()) { + double hRange = getSkinnable().getHmax()-getSkinnable().getHmin(); + double hPixelValue; + if (nodeWidth > 0.0) { + hPixelValue = hRange / nodeWidth; + } + else { + hPixelValue = 0.0; + } + + double newValue = hsb.getValue()+(-event.getDeltaX())*hPixelValue; + if (!IS_TOUCH_SUPPORTED) { + if ((event.getDeltaX() > 0.0 && hsb.getValue() > hsb.getMin()) || + (event.getDeltaX() < 0.0 && hsb.getValue() < hsb.getMax())) { + hsb.setValue(newValue); + event.consume(); } - else { - hPixelValue = 0.0; - } + } + else { + /* + ** if there is a repositioning in progress then we only + ** set the value for 'real' events + */ + if (!(((ScrollEvent)event).isInertia()) || (((ScrollEvent)event).isInertia()) && (contentsToViewTimeline == null || contentsToViewTimeline.getStatus() == Status.STOPPED)) { + hsb.setValue(newValue); - double newValue = hsb.getValue()+(-event.getDeltaX())*hPixelValue; - if (!IS_TOUCH_SUPPORTED) { - if ((event.getDeltaX() > 0.0 && hsb.getValue() > hsb.getMin()) || - (event.getDeltaX() < 0.0 && hsb.getValue() < hsb.getMax())) { - hsb.setValue(newValue); - event.consume(); + if ((newValue > hsb.getMax() || newValue < hsb.getMin()) && (!mouseDown && !touchDetected)) { + startContentsToViewport(); } - } - else { - /* - ** if there is a repositioning in progress then we only - ** set the value for 'real' events - */ - if (!(((ScrollEvent)event).isInertia()) || (((ScrollEvent)event).isInertia()) && (contentsToViewTimeline == null || contentsToViewTimeline.getStatus() == Status.STOPPED)) { - hsb.setValue(newValue); - - if ((newValue > hsb.getMax() || newValue < hsb.getMin()) && (!mouseDown && !touchDetected)) { - startContentsToViewport(); - } - event.consume(); - } + event.consume(); } } } @@ -580,19 +557,15 @@ ** there are certain animations that need to know if the touch is ** happening..... */ - getSkinnable().addEventHandler(TouchEvent.TOUCH_PRESSED, new EventHandler() { - @Override public void handle(TouchEvent e) { - touchDetected = true; - startSBReleasedAnimation(); - e.consume(); - } + getSkinnable().addEventHandler(TouchEvent.TOUCH_PRESSED, e -> { + touchDetected = true; + startSBReleasedAnimation(); + e.consume(); }); - getSkinnable().addEventHandler(TouchEvent.TOUCH_RELEASED,new EventHandler() { - @Override public void handle(TouchEvent e) { - touchDetected = false; - e.consume(); - } + getSkinnable().addEventHandler(TouchEvent.TOUCH_RELEASED, e -> { + touchDetected = false; + e.consume(); }); // ScrollPanes do not block all MouseEvents by default, unlike most other UI Controls. @@ -1093,20 +1066,16 @@ ** while after a scroll/drag */ sbTouchTimeline = new Timeline(); - sbTouchKF1 = new KeyFrame(Duration.millis(0), new EventHandler() { - @Override public void handle(ActionEvent event) { - tempVisibility = true; - if (touchDetected == true || mouseDown == true) { - sbTouchTimeline.playFromStart(); - } + sbTouchKF1 = new KeyFrame(Duration.millis(0), event -> { + tempVisibility = true; + if (touchDetected == true || mouseDown == true) { + sbTouchTimeline.playFromStart(); } }); - sbTouchKF2 = new KeyFrame(Duration.millis(1000), new EventHandler() { - @Override public void handle(ActionEvent event) { - tempVisibility = false; - getSkinnable().requestLayout(); - } + sbTouchKF2 = new KeyFrame(Duration.millis(1000), event -> { + tempVisibility = false; + getSkinnable().requestLayout(); }); sbTouchTimeline.getKeyFrames().addAll(sbTouchKF1, sbTouchKF2); } @@ -1155,11 +1124,9 @@ /* ** reposition */ - contentsToViewKF2 = new KeyFrame(Duration.millis(150), new EventHandler() { - @Override public void handle(ActionEvent event) { - getSkinnable().requestLayout(); - } - }, + contentsToViewKF2 = new KeyFrame(Duration.millis(150), event -> { + getSkinnable().requestLayout(); + }, new KeyValue(contentPosX, newPosX), new KeyValue(contentPosY, newPosY) ); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SliderSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SliderSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SliderSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SliderSkin.java @@ -122,54 +122,44 @@ getChildren().clear(); getChildren().addAll(track, thumb); setShowTickMarks(getSkinnable().isShowTickMarks(), getSkinnable().isShowTickLabels()); - track.setOnMousePressed( new EventHandler() { - @Override public void handle(MouseEvent me) { - if (!thumb.isPressed()) { - trackClicked = true; - if (getSkinnable().getOrientation() == Orientation.HORIZONTAL) { - getBehavior().trackPress(me, (me.getX() / trackLength)); - } else { - getBehavior().trackPress(me, (me.getY() / trackLength)); - } - trackClicked = false; + track.setOnMousePressed(me -> { + if (!thumb.isPressed()) { + trackClicked = true; + if (getSkinnable().getOrientation() == Orientation.HORIZONTAL) { + getBehavior().trackPress(me, (me.getX() / trackLength)); + } else { + getBehavior().trackPress(me, (me.getY() / trackLength)); } + trackClicked = false; } }); - track.setOnMouseDragged(new EventHandler() { - public void handle(MouseEvent me) { - if (!thumb.isPressed()) { - if (getSkinnable().getOrientation() == Orientation.HORIZONTAL) { - getBehavior().trackPress(me, (me.getX() / trackLength)); - } else { - getBehavior().trackPress(me, (me.getY() / trackLength)); - } + track.setOnMouseDragged(me -> { + if (!thumb.isPressed()) { + if (getSkinnable().getOrientation() == Orientation.HORIZONTAL) { + getBehavior().trackPress(me, (me.getX() / trackLength)); + } else { + getBehavior().trackPress(me, (me.getY() / trackLength)); } } }); - thumb.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent me) { - getBehavior().thumbPressed(me, 0.0f); - dragStart = thumb.localToParent(me.getX(), me.getY()); - preDragThumbPos = (getSkinnable().getValue() - getSkinnable().getMin()) / - (getSkinnable().getMax() - getSkinnable().getMin()); - } + thumb.setOnMousePressed(me -> { + getBehavior().thumbPressed(me, 0.0f); + dragStart = thumb.localToParent(me.getX(), me.getY()); + preDragThumbPos = (getSkinnable().getValue() - getSkinnable().getMin()) / + (getSkinnable().getMax() - getSkinnable().getMin()); }); - thumb.setOnMouseReleased(new EventHandler() { - @Override public void handle(MouseEvent me) { - getBehavior().thumbReleased(me); - } + thumb.setOnMouseReleased(me -> { + getBehavior().thumbReleased(me); }); - thumb.setOnMouseDragged(new EventHandler() { - @Override public void handle(MouseEvent me) { - Point2D cur = thumb.localToParent(me.getX(), me.getY()); - double dragPos = (getSkinnable().getOrientation() == Orientation.HORIZONTAL)? - cur.getX() - dragStart.getX() : -(cur.getY() - dragStart.getY()); - getBehavior().thumbDragged(me, preDragThumbPos + dragPos / trackLength); - } + thumb.setOnMouseDragged(me -> { + Point2D cur = thumb.localToParent(me.getX(), me.getY()); + double dragPos = (getSkinnable().getOrientation() == Orientation.HORIZONTAL)? + cur.getX() - dragStart.getX() : -(cur.getY() - dragStart.getY()); + getBehavior().thumbDragged(me, preDragThumbPos + dragPos / trackLength); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitMenuButtonSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitMenuButtonSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitMenuButtonSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitMenuButtonSkin.java @@ -57,24 +57,16 @@ behaveLikeButton = true; // TODO: do we need to consume all mouse events? // they only bubble to the skin which consumes them by default - arrowButton.addEventHandler(MouseEvent.ANY, new EventHandler() { - @Override - public void handle(MouseEvent event) { - event.consume(); - } - }); - arrowButton.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent e) { - getBehavior().mousePressed(e, false); - e.consume(); - } + arrowButton.addEventHandler(MouseEvent.ANY, event -> { + event.consume(); }); - arrowButton.setOnMouseReleased(new EventHandler() { - @Override - public void handle(MouseEvent e) { - getBehavior().mouseReleased(e, false); - e.consume(); - } + arrowButton.setOnMousePressed(e -> { + getBehavior().mousePressed(e, false); + e.consume(); + }); + arrowButton.setOnMouseReleased(e -> { + getBehavior().mouseReleased(e, false); + e.consume(); }); label.setLabelFor(splitMenuButton); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitPaneSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitPaneSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitPaneSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SplitPaneSkin.java @@ -94,38 +94,36 @@ } private void initializeContentListener() { - getSkinnable().getItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasPermutated() || c.wasUpdated()) { - /** - * the contents were either moved, or updated. - * rebuild the contents to re-sync - */ - getChildren().clear(); - contentRegions.clear(); - int index = 0; - for (Node n : c.getList()) { - addContent(index++, n); - } + getSkinnable().getItems().addListener((ListChangeListener) c -> { + while (c.next()) { + if (c.wasPermutated() || c.wasUpdated()) { + /** + * the contents were either moved, or updated. + * rebuild the contents to re-sync + */ + getChildren().clear(); + contentRegions.clear(); + int index = 0; + for (Node n : c.getList()) { + addContent(index++, n); + } - } else { - for (Node n : c.getRemoved()) { - removeContent(n); - } + } else { + for (Node n : c.getRemoved()) { + removeContent(n); + } - int index = c.getFrom(); - for (Node n : c.getAddedSubList()) { - addContent(index++, n); - } + int index = c.getFrom(); + for (Node n : c.getAddedSubList()) { + addContent(index++, n); } } - // TODO there may be a more efficient way than rebuilding all the dividers - // everytime the list changes. - removeAllDividers(); - for (SplitPane.Divider d: getSkinnable().getDividers()) { - addDivider(d); - } + } + // TODO there may be a more efficient way than rebuilding all the dividers + // everytime the list changes. + removeAllDividers(); + for (SplitPane.Divider d: getSkinnable().getDividers()) { + addDivider(d); } }); } @@ -238,42 +236,36 @@ private void initializeDivderEventHandlers(final ContentDivider divider) { // TODO: do we need to consume all mouse events? // they only bubble to the skin which consumes them by default - divider.addEventHandler(MouseEvent.ANY, new EventHandler() { - @Override public void handle(MouseEvent event) { - event.consume(); - } + divider.addEventHandler(MouseEvent.ANY, event -> { + event.consume(); }); - divider.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent e) { - if (horizontal) { - divider.setInitialPos(divider.getDividerPos()); - divider.setPressPos(e.getSceneX()); - divider.setPressPos(getSkinnable().getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT - ? getSkinnable().getWidth() - e.getSceneX() : e.getSceneX()); - } else { - divider.setInitialPos(divider.getDividerPos()); - divider.setPressPos(e.getSceneY()); - } - e.consume(); + divider.setOnMousePressed(e -> { + if (horizontal) { + divider.setInitialPos(divider.getDividerPos()); + divider.setPressPos(e.getSceneX()); + divider.setPressPos(getSkinnable().getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT + ? getSkinnable().getWidth() - e.getSceneX() : e.getSceneX()); + } else { + divider.setInitialPos(divider.getDividerPos()); + divider.setPressPos(e.getSceneY()); } + e.consume(); }); - divider.setOnMouseDragged(new EventHandler() { - @Override public void handle(MouseEvent e) { - double delta = 0; - if (horizontal) { - delta = getSkinnable().getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT - ? getSkinnable().getWidth() - e.getSceneX() : e.getSceneX(); - } else { - delta = e.getSceneY(); - } - delta -= divider.getPressPos(); - double newPos = Math.ceil(divider.getInitialPos() + delta); - checkDividerPos = true; - setAbsoluteDividerPos(divider, newPos); - e.consume(); + divider.setOnMouseDragged(e -> { + double delta = 0; + if (horizontal) { + delta = getSkinnable().getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT + ? getSkinnable().getWidth() - e.getSceneX() : e.getSceneX(); + } else { + delta = e.getSceneY(); } + delta -= divider.getPressPos(); + double newPos = Math.ceil(divider.getInitialPos() + delta); + checkDividerPos = true; + setAbsoluteDividerPos(divider, newPos); + e.consume(); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java @@ -246,10 +246,8 @@ if (tabRegion != null) { if (closeTabAnimation.get() == TabAnimation.GROW) { tabRegion.animating = true; - Timeline closedTabTimeline = createTimeline(tabRegion, Duration.millis(ANIMATION_SPEED), 0.0F, new EventHandler() { - @Override public void handle(ActionEvent event) { - handleClosedTab(tab); - } + Timeline closedTabTimeline = createTimeline(tabRegion, Duration.millis(ANIMATION_SPEED), 0.0F, event -> { + handleClosedTab(tab); }); closedTabTimeline.play(); } else { @@ -281,11 +279,9 @@ tabRegion.animating = true; tabRegion.animationTransition.setValue(0.0); tabRegion.setVisible(true); - createTimeline(tabRegion, Duration.millis(ANIMATION_SPEED), 1.0, new EventHandler() { - @Override public void handle(ActionEvent event) { - tabRegion.animating = false; - tabRegion.inner.requestLayout(); - } + createTimeline(tabRegion, Duration.millis(ANIMATION_SPEED), 1.0, event -> { + tabRegion.animating = false; + tabRegion.inner.requestLayout(); }).play(); } else { tabRegion.setVisible(true); @@ -296,69 +292,67 @@ } private void initializeTabListener() { - getSkinnable().getTabs().addListener(new ListChangeListener() { - @Override public void onChanged(final Change c) { - List tabsToRemove = new ArrayList<>(); - List tabsToAdd = new ArrayList<>(); - int insertPos = -1; + getSkinnable().getTabs().addListener((ListChangeListener) c -> { + List tabsToRemove = new ArrayList<>(); + List tabsToAdd = new ArrayList<>(); + int insertPos = -1; - while (c.next()) { - if (c.wasPermutated()) { - TabPane tabPane = getSkinnable(); - List tabs = tabPane.getTabs(); + while (c.next()) { + if (c.wasPermutated()) { + TabPane tabPane = getSkinnable(); + List tabs = tabPane.getTabs(); - // tabs sorted : create list of permutated tabs. - // clear selection, set tab animation to NONE - // remove permutated tabs, add them back in correct order. - // restore old selection, and old tab animation states. - int size = c.getTo() - c.getFrom(); - Tab selTab = tabPane.getSelectionModel().getSelectedItem(); - List permutatedTabs = new ArrayList(size); - getSkinnable().getSelectionModel().clearSelection(); + // tabs sorted : create list of permutated tabs. + // clear selection, set tab animation to NONE + // remove permutated tabs, add them back in correct order. + // restore old selection, and old tab animation states. + int size = c.getTo() - c.getFrom(); + Tab selTab = tabPane.getSelectionModel().getSelectedItem(); + List permutatedTabs = new ArrayList(size); + getSkinnable().getSelectionModel().clearSelection(); - // save and set tab animation to none - as it is not a good idea - // to animate on the same data for open and close. - TabAnimation prevOpenAnimation = openTabAnimation.get(); - TabAnimation prevCloseAnimation = closeTabAnimation.get(); - openTabAnimation.set(TabAnimation.NONE); - closeTabAnimation.set(TabAnimation.NONE); - for (int i = c.getFrom(); i < c.getTo(); i++) { - permutatedTabs.add(tabs.get(i)); - } - - removeTabs(permutatedTabs); - addTabs(permutatedTabs, c.getFrom()); - openTabAnimation.set(prevOpenAnimation); - closeTabAnimation.set(prevCloseAnimation); - getSkinnable().getSelectionModel().select(selTab); + // save and set tab animation to none - as it is not a good idea + // to animate on the same data for open and close. + TabAnimation prevOpenAnimation = openTabAnimation.get(); + TabAnimation prevCloseAnimation = closeTabAnimation.get(); + openTabAnimation.set(TabAnimation.NONE); + closeTabAnimation.set(TabAnimation.NONE); + for (int i = c.getFrom(); i < c.getTo(); i++) { + permutatedTabs.add(tabs.get(i)); } - if (c.wasRemoved()) { - tabsToRemove.addAll(c.getRemoved()); - } - - if (c.wasAdded()) { - tabsToAdd.addAll(c.getAddedSubList()); - insertPos = c.getFrom(); - } + removeTabs(permutatedTabs); + addTabs(permutatedTabs, c.getFrom()); + openTabAnimation.set(prevOpenAnimation); + closeTabAnimation.set(prevCloseAnimation); + getSkinnable().getSelectionModel().select(selTab); } - // now only remove the tabs that are not in the tabsToAdd list - tabsToRemove.removeAll(tabsToAdd); - removeTabs(tabsToRemove); - - // and add in any new tabs (that we don't already have showing) - for (TabContentRegion tabContentRegion : tabContentRegions) { - if (tabsToAdd.contains(tabContentRegion.getTab())) { - tabsToAdd.remove(tabContentRegion.getTab()); - } + if (c.wasRemoved()) { + tabsToRemove.addAll(c.getRemoved()); } - addTabs(tabsToAdd, insertPos == -1 ? tabContentRegions.size() : insertPos); + if (c.wasAdded()) { + tabsToAdd.addAll(c.getAddedSubList()); + insertPos = c.getFrom(); + } + } - // Fix for RT-34692 - getSkinnable().requestLayout(); + // now only remove the tabs that are not in the tabsToAdd list + tabsToRemove.removeAll(tabsToAdd); + removeTabs(tabsToRemove); + + // and add in any new tabs (that we don't already have showing) + for (TabContentRegion tabContentRegion : tabContentRegions) { + if (tabsToAdd.contains(tabContentRegion.getTab())) { + tabsToAdd.remove(tabContentRegion.getTab()); + } } + + addTabs(tabsToAdd, insertPos == -1 ? tabContentRegions.size() : insertPos); + + // Fix for RT-34692 + getSkinnable().requestLayout(); }); } @@ -431,17 +425,13 @@ private void initializeSwipeHandlers() { if (IS_TOUCH_SUPPORTED) { - getSkinnable().setOnSwipeLeft(new EventHandler() { - @Override public void handle(SwipeEvent t) { - getBehavior().selectNextTab(); - } + getSkinnable().setOnSwipeLeft(t -> { + getBehavior().selectNextTab(); }); - getSkinnable().setOnSwipeRight(new EventHandler() { - @Override public void handle(SwipeEvent t) { - getBehavior().selectPreviousTab(); - } - }); + getSkinnable().setOnSwipeRight(t -> { + getBehavior().selectPreviousTab(); + }); } } @@ -1036,11 +1026,9 @@ private Rectangle clip; private MultiplePropertyChangeListenerHandler listener = - new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String param) { - handlePropertyChanged(param); - return null; - } + new MultiplePropertyChangeListenerHandler(param -> { + handlePropertyChanged(param); + return null; }); private final ListChangeListener styleClassListener = new ListChangeListener() { @@ -1218,12 +1206,10 @@ getProperties().put(Tab.class, tab); getProperties().put(ContextMenu.class, tab.getContextMenu()); - setOnContextMenuRequested(new EventHandler() { - @Override public void handle(ContextMenuEvent me) { - if (getTab().getContextMenu() != null) { - getTab().getContextMenu().show(inner, me.getScreenX(), me.getScreenY()); - me.consume(); - } + setOnContextMenuRequested(me -> { + if (getTab().getContextMenu() != null) { + getTab().getContextMenu().show(inner, me.getScreenX(), me.getScreenY()); + me.consume(); } }); setOnMousePressed(new EventHandler() { @@ -1448,10 +1434,8 @@ private Direction direction = Direction.NEXT; private Tab tab; - private InvalidationListener tabContentListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateContent(); - } + private InvalidationListener tabContentListener = valueModel -> { + updateContent(); }; private InvalidationListener tabSelectedListener = new InvalidationListener() { @Override public void invalidated(Observable valueModel) { @@ -1520,10 +1504,8 @@ downArrow.getStyleClass().setAll("arrow"); downArrow.setRotate(tabPane.getSide().equals(Side.BOTTOM) ? 180.0F : 0.0F); downArrowBtn.getChildren().add(downArrow); - downArrowBtn.setOnMouseClicked(new EventHandler() { - @Override public void handle(MouseEvent me) { - showPopupMenu(); - } + downArrowBtn.setOnMouseClicked(me -> { + showPopupMenu(); }); setupPopupMenu(); @@ -1611,16 +1593,12 @@ getChildren().add(inner); - tabPane.sideProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - Side tabPosition = getSkinnable().getSide(); - downArrow.setRotate(tabPosition.equals(Side.BOTTOM)? 180.0F : 0.0F); - } + tabPane.sideProperty().addListener(valueModel -> { + Side tabPosition = getSkinnable().getSide(); + downArrow.setRotate(tabPosition.equals(Side.BOTTOM)? 180.0F : 0.0F); }); - tabPane.getTabs().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - setupPopupMenu(); - } + tabPane.getTabs().addListener((ListChangeListener) c -> { + setupPopupMenu(); }); showControlButtons = false; if (isShowTabsMenu()) { @@ -1650,10 +1628,8 @@ private final DoubleProperty controlTabHeight = new SimpleDoubleProperty(this, "controlTabHeight"); { - controlTabHeight.addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - requestLayout(); - } + controlTabHeight.addListener(valueModel -> { + requestLayout(); }); } // TODO: Maybe the getter and setter can be dropped completely after @@ -1724,13 +1700,11 @@ setVisible(true); timeline.getKeyFrames().clear(); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(ANIMATION_SPEED), new EventHandler() { - @Override public void handle(ActionEvent event) { - if (popup == null) { - setupPopupMenu(); - } - requestLayout(); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(ANIMATION_SPEED), event -> { + if (popup == null) { + setupPopupMenu(); } + requestLayout(); }, keyValue)); timeline.play(); } @@ -1741,26 +1715,24 @@ KeyValue keyValue = new KeyValue(controlTabHeight, 0.0, Interpolator.EASE_IN); timeline.getKeyFrames().clear(); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(ANIMATION_SPEED), new EventHandler() { - @Override public void handle(ActionEvent event) { - if (!isShowTabsMenu()) { - downArrowBtn.setVisible(false); - } - // If the scroll arrows or tab menu is still visible we don't want - // to hide it animate it back it. - if (isShowTabsMenu()) { - showControlButtons = true; - } else { - setVisible(false); - popup.getItems().clear(); - popup = null; - } - setAnimationLock(false); - // This needs to be called when we are in the left tabPosition - // to allow for the clip offset to move properly (otherwise - // it jumps too early - before the animation is done). - requestLayout(); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(ANIMATION_SPEED), event -> { + if (!isShowTabsMenu()) { + downArrowBtn.setVisible(false); } + // If the scroll arrows or tab menu is still visible we don't want + // to hide it animate it back it. + if (isShowTabsMenu()) { + showControlButtons = true; + } else { + setVisible(false); + popup.getItems().clear(); + popup = null; + } + setAnimationLock(false); + // This needs to be called when we are in the left tabPosition + // to allow for the clip offset to move properly (otherwise + // it jumps too early - before the animation is done). + requestLayout(); }, keyValue)); timeline.play(); } @@ -1776,10 +1748,8 @@ for (final Tab tab : getSkinnable().getTabs()) { TabMenuItem item = new TabMenuItem(tab); item.setToggleGroup(group); - item.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent t) { - getSkinnable().getSelectionModel().select(tab); - } + item.setOnAction(t -> { + getSkinnable().getSelectionModel().select(tab); }); menuitems.add(item); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableCellSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableCellSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableCellSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableCellSkinBase.java @@ -110,10 +110,8 @@ * * **************************************************************************/ - private InvalidationListener columnWidthListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - getSkinnable().requestLayout(); - } + private InvalidationListener columnWidthListener = valueModel -> { + getSkinnable().requestLayout(); }; private WeakInvalidationListener weakColumnWidthListener = diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java @@ -142,11 +142,9 @@ initUI(); // change listener for multiple properties - changeListenerHandler = new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String p) { - handlePropertyChanged(p); - return null; - } + changeListenerHandler = new MultiplePropertyChangeListenerHandler(p -> { + handlePropertyChanged(p); + return null; }); changeListenerHandler.registerChangeListener(sceneProperty(), "SCENE"); @@ -181,22 +179,16 @@ protected final MultiplePropertyChangeListenerHandler changeListenerHandler; - private ListChangeListener> sortOrderListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - updateSortPosition(); - } + private ListChangeListener> sortOrderListener = c -> { + updateSortPosition(); }; - private ListChangeListener> visibleLeafColumnsListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - updateColumnIndex(); - } + private ListChangeListener> visibleLeafColumnsListener = c -> { + updateColumnIndex(); }; - private ListChangeListener styleClassListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - updateStyleClass(); - } + private ListChangeListener styleClassListener = c -> { + updateStyleClass(); }; private WeakListChangeListener> weakSortOrderListener = @@ -206,60 +198,52 @@ private final WeakListChangeListener weakStyleClassListener = new WeakListChangeListener(styleClassListener); - private static final EventHandler mousePressedHandler = new EventHandler() { - @Override public void handle(MouseEvent me) { - TableColumnHeader header = (TableColumnHeader) me.getSource(); + private static final EventHandler mousePressedHandler = me -> { + TableColumnHeader header = (TableColumnHeader) me.getSource(); - // pass focus to the table, so that the user immediately sees - // the focus rectangle around the table control. - header.getTableViewSkin().getSkinnable().requestFocus(); + // pass focus to the table, so that the user immediately sees + // the focus rectangle around the table control. + header.getTableViewSkin().getSkinnable().requestFocus(); - if (me.isPrimaryButtonDown() && header.isColumnReorderingEnabled()) { - header.columnReorderingStarted(me); - } - me.consume(); + if (me.isPrimaryButtonDown() && header.isColumnReorderingEnabled()) { + header.columnReorderingStarted(me); } + me.consume(); }; - private static final EventHandler mouseDraggedHandler = new EventHandler() { - @Override public void handle(MouseEvent me) { - TableColumnHeader header = (TableColumnHeader) me.getSource(); - - if (me.isPrimaryButtonDown() && header.isColumnReorderingEnabled()) { - header.columnReordering(me); - } - me.consume(); + private static final EventHandler mouseDraggedHandler = me -> { + TableColumnHeader header = (TableColumnHeader) me.getSource(); + + if (me.isPrimaryButtonDown() && header.isColumnReorderingEnabled()) { + header.columnReordering(me); } + me.consume(); }; - private static final EventHandler mouseReleasedHandler = new EventHandler() { - @Override public void handle(MouseEvent me) { - if (me.isPopupTrigger()) return; - - TableColumnHeader header = (TableColumnHeader) me.getSource(); - TableColumnBase tableColumn = header.getTableColumn(); - - ContextMenu menu = tableColumn.getContextMenu(); - if (menu != null && menu.isShowing()) return; - if (header.getTableHeaderRow().isReordering() && header.isColumnReorderingEnabled()) { - header.columnReorderingComplete(me); - } else if (me.isStillSincePress()) { - header.sortColumn(me.isShiftDown()); - } - me.consume(); + private static final EventHandler mouseReleasedHandler = me -> { + if (me.isPopupTrigger()) return; + + TableColumnHeader header = (TableColumnHeader) me.getSource(); + TableColumnBase tableColumn = header.getTableColumn(); + + ContextMenu menu = tableColumn.getContextMenu(); + if (menu != null && menu.isShowing()) return; + if (header.getTableHeaderRow().isReordering() && header.isColumnReorderingEnabled()) { + header.columnReorderingComplete(me); + } else if (me.isStillSincePress()) { + header.sortColumn(me.isShiftDown()); } + me.consume(); }; - private static final EventHandler contextMenuRequestedHandler = new EventHandler() { - @Override public void handle(ContextMenuEvent me) { - TableColumnHeader header = (TableColumnHeader) me.getSource(); - TableColumnBase tableColumn = header.getTableColumn(); + private static final EventHandler contextMenuRequestedHandler = me -> { + TableColumnHeader header = (TableColumnHeader) me.getSource(); + TableColumnBase tableColumn = header.getTableColumn(); - ContextMenu menu = tableColumn.getContextMenu(); - if (menu != null) { - menu.show(header, me.getScreenX(), me.getScreenY()); - me.consume(); - } + ContextMenu menu = tableColumn.getContextMenu(); + if (menu != null) { + menu.show(header, me.getScreenX(), me.getScreenY()); + me.consume(); } }; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableHeaderRow.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableHeaderRow.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableHeaderRow.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableHeaderRow.java @@ -190,10 +190,8 @@ // Give focus to the table when an empty area of the header row is clicked. // This ensures the user knows that the table has focus. - setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent e) { - skin.getSkinnable().requestFocus(); - } + setOnMousePressed(e -> { + skin.getSkinnable().requestFocus(); }); // build the corner region button for showing the popup menu @@ -213,18 +211,14 @@ cornerRegion.getStyleClass().setAll("show-hide-columns-button"); cornerRegion.getChildren().addAll(image); cornerRegion.setVisible(tableSkin.tableMenuButtonVisibleProperty().get()); - tableSkin.tableMenuButtonVisibleProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - cornerRegion.setVisible(tableSkin.tableMenuButtonVisibleProperty().get()); - requestLayout(); - } + tableSkin.tableMenuButtonVisibleProperty().addListener(valueModel -> { + cornerRegion.setVisible(tableSkin.tableMenuButtonVisibleProperty().get()); + requestLayout(); }); - cornerRegion.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent me) { - // show a popupMenu which lists all columns - columnPopupMenu.show(cornerRegion, Side.BOTTOM, 0, 0); - me.consume(); - } + cornerRegion.setOnMousePressed(me -> { + // show a popupMenu which lists all columns + columnPopupMenu.show(cornerRegion, Side.BOTTOM, 0, 0); + me.consume(); }); // the actual header @@ -242,16 +236,12 @@ * * **************************************************************************/ - private InvalidationListener tableWidthListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateTableWidth(); - } + private InvalidationListener tableWidthListener = valueModel -> { + updateTableWidth(); }; - private InvalidationListener tablePaddingListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateTableWidth(); - } + private InvalidationListener tablePaddingListener = valueModel -> { + updateTableWidth(); }; private ListChangeListener visibleLeafColumnsListener = new ListChangeListener>() { @@ -261,21 +251,17 @@ } }; - private final ListChangeListener tableColumnsListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - while (c.next()) { - updateTableColumnListeners(c.getAddedSubList(), c.getRemoved()); - } + private final ListChangeListener tableColumnsListener = c -> { + while (c.next()) { + updateTableColumnListeners(c.getAddedSubList(), c.getRemoved()); } }; - private final InvalidationListener columnTextListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - TableColumn column = (TableColumn) ((StringProperty)observable).getBean(); - CheckMenuItem menuItem = columnMenuItems.get(column); - if (menuItem != null) { - menuItem.setText(getText(column.getText(), column)); - } + private final InvalidationListener columnTextListener = observable -> { + TableColumn column = (TableColumn) ((StringProperty)observable).getBean(); + CheckMenuItem menuItem = columnMenuItems.get(column); + if (menuItem != null) { + menuItem.setText(getText(column.getText(), column)); } }; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkinBase.java @@ -171,11 +171,9 @@ * * **************************************************************************/ - private ListChangeListener visibleLeafColumnsListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - isDirty = true; - getSkinnable().requestLayout(); - } + private ListChangeListener visibleLeafColumnsListener = c -> { + isDirty = true; + getSkinnable().requestLayout(); }; private WeakListChangeListener weakVisibleLeafColumnsListener = diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java @@ -64,58 +64,36 @@ super.init(tableView); - EventHandler ml = new EventHandler() { - @Override public void handle(MouseEvent event) { - // RT-15127: cancel editing on scroll. This is a bit extreme - // (we are cancelling editing on touching the scrollbars). - // This can be improved at a later date. - if (tableView.getEditingCell() != null) { - tableView.edit(-1, null); - } - - // This ensures that the table maintains the focus, even when the vbar - // and hbar controls inside the flow are clicked. Without this, the - // focus border will not be shown when the user interacts with the - // scrollbars, and more importantly, keyboard navigation won't be - // available to the user. - tableView.requestFocus(); + EventHandler ml = event -> { + // RT-15127: cancel editing on scroll. This is a bit extreme + // (we are cancelling editing on touching the scrollbars). + // This can be improved at a later date. + if (tableView.getEditingCell() != null) { + tableView.edit(-1, null); } + + // This ensures that the table maintains the focus, even when the vbar + // and hbar controls inside the flow are clicked. Without this, the + // focus border will not be shown when the user interacts with the + // scrollbars, and more importantly, keyboard navigation won't be + // available to the user. + tableView.requestFocus(); }; flow.getVbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); flow.getHbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); // init the behavior 'closures' TableViewBehavior behavior = getBehavior(); - behavior.setOnFocusPreviousRow(new Runnable() { - @Override public void run() { onFocusPreviousCell(); } - }); - behavior.setOnFocusNextRow(new Runnable() { - @Override public void run() { onFocusNextCell(); } - }); - behavior.setOnMoveToFirstCell(new Runnable() { - @Override public void run() { onMoveToFirstCell(); } - }); - behavior.setOnMoveToLastCell(new Runnable() { - @Override public void run() { onMoveToLastCell(); } - }); - behavior.setOnScrollPageDown(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageDown(isFocusDriven); } - }); - behavior.setOnScrollPageUp(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageUp(isFocusDriven); } - }); - behavior.setOnSelectPreviousRow(new Runnable() { - @Override public void run() { onSelectPreviousCell(); } - }); - behavior.setOnSelectNextRow(new Runnable() { - @Override public void run() { onSelectNextCell(); } - }); - behavior.setOnSelectLeftCell(new Runnable() { - @Override public void run() { onSelectLeftCell(); } - }); - behavior.setOnSelectRightCell(new Runnable() { - @Override public void run() { onSelectRightCell(); } - }); + behavior.setOnFocusPreviousRow(() -> { onFocusPreviousCell(); }); + behavior.setOnFocusNextRow(() -> { onFocusNextCell(); }); + behavior.setOnMoveToFirstCell(() -> { onMoveToFirstCell(); }); + behavior.setOnMoveToLastCell(() -> { onMoveToLastCell(); }); + behavior.setOnScrollPageDown(isFocusDriven -> onScrollPageDown(isFocusDriven)); + behavior.setOnScrollPageUp(isFocusDriven -> onScrollPageUp(isFocusDriven)); + behavior.setOnSelectPreviousRow(() -> { onSelectPreviousCell(); }); + behavior.setOnSelectNextRow(() -> { onSelectNextCell(); }); + behavior.setOnSelectLeftCell(() -> { onSelectLeftCell(); }); + behavior.setOnSelectRightCell(() -> { onSelectRightCell(); }); registerChangeListener(tableView.fixedCellSizeProperty(), "FIXED_CELL_SIZE"); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java @@ -140,12 +140,7 @@ // on embedded systems with touch screens which do not generate scroll // events for touch drag gestures. private static final boolean IS_PANNABLE = - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Boolean run() { - return Boolean.getBoolean("com.sun.javafx.scene.control.skin.TableViewSkin.pannable"); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> Boolean.getBoolean("com.sun.javafx.scene.control.skin.TableViewSkin.pannable")); /*************************************************************************** * * @@ -167,20 +162,14 @@ // init the VirtualFlow flow.setPannable(IS_PANNABLE); flow.setFocusTraversable(control.isFocusTraversable()); - flow.setCreateCell(new Callback() { - @Override public I call(VirtualFlow flow) { - return TableViewSkinBase.this.createCell(); - } - }); + flow.setCreateCell(flow1 -> TableViewSkinBase.this.createCell()); /* * Listening for scrolling along the X axis, but we need to be careful * to handle the situation appropriately when the hbar is invisible. */ - final InvalidationListener hbarValueListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - horizontalScroll(); - } + final InvalidationListener hbarValueListener = valueModel -> { + horizontalScroll(); }; flow.getHbar().valueProperty().addListener(hbarValueListener); @@ -203,10 +192,8 @@ updateVisibleColumnCount(); updateVisibleLeafColumnWidthListeners(getVisibleLeafColumns(), FXCollections.emptyObservableList()); - tableHeaderRow.reorderingProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - getSkinnable().requestLayout(); - } + tableHeaderRow.reorderingProperty().addListener(valueModel -> { + getSkinnable().requestLayout(); }); getVisibleLeafColumns().addListener(weakVisibleLeafColumnsListener); @@ -216,18 +203,14 @@ control.getProperties().addListener(propertiesMapListener); - control.addEventHandler(ScrollToEvent.scrollToColumn(), new EventHandler>() { - @Override public void handle(ScrollToEvent event) { - scrollHorizontally(event.getScrollTarget()); - } - }); + control.addEventHandler(ScrollToEvent.scrollToColumn(), event -> { + scrollHorizontally(event.getScrollTarget()); + }); // flow and flow.vbar width observer - InvalidationListener widthObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - contentWidthDirty = true; - getSkinnable().requestLayout(); - } + InvalidationListener widthObserver = valueModel -> { + contentWidthDirty = true; + getSkinnable().requestLayout(); }; flow.widthProperty().addListener(widthObserver); flow.getVbar().widthProperty().addListener(widthObserver); @@ -247,76 +230,65 @@ * * **************************************************************************/ - private MapChangeListener propertiesMapListener = new MapChangeListener() { - @Override public void onChanged(MapChangeListener.Change c) { - if (! c.wasAdded()) return; - if (REFRESH.equals(c.getKey())) { - refreshView(); - getSkinnable().getProperties().remove(REFRESH); - } else if (RECREATE.equals(c.getKey())) { - forceCellRecreate = true; - refreshView(); - getSkinnable().getProperties().remove(RECREATE); - } + private MapChangeListener propertiesMapListener = c -> { + if (! c.wasAdded()) return; + if (REFRESH.equals(c.getKey())) { + refreshView(); + getSkinnable().getProperties().remove(REFRESH); + } else if (RECREATE.equals(c.getKey())) { + forceCellRecreate = true; + refreshView(); + getSkinnable().getProperties().remove(RECREATE); } }; - private ListChangeListener rowCountListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasReplaced()) { - // RT-28397: Support for when an item is replaced with itself (but - // updated internal values that should be shown visually) - itemCount = 0; - break; - } else if (c.getRemovedSize() == itemCount) { - // RT-22463: If the user clears out an items list then we - // should reset all cells (in particular their contained - // items) such that a subsequent addition to the list of - // an item which equals the old item (but is rendered - // differently) still displays as expected (i.e. with the - // updated display, not the old display). - itemCount = 0; - break; + private ListChangeListener rowCountListener = c -> { + while (c.next()) { + if (c.wasReplaced()) { + // RT-28397: Support for when an item is replaced with itself (but + // updated internal values that should be shown visually) + itemCount = 0; + break; + } else if (c.getRemovedSize() == itemCount) { + // RT-22463: If the user clears out an items list then we + // should reset all cells (in particular their contained + // items) such that a subsequent addition to the list of + // an item which equals the old item (but is rendered + // differently) still displays as expected (i.e. with the + // updated display, not the old display). + itemCount = 0; + break; + } + } + + rowCountDirty = true; + getSkinnable().requestLayout(); + }; + + private ListChangeListener visibleLeafColumnsListener = + c -> { + updateVisibleColumnCount(); + while (c.next()) { + updateVisibleLeafColumnWidthListeners(c.getAddedSubList(), c.getRemoved()); } - } - - rowCountDirty = true; + }; + + private InvalidationListener widthListener = observable -> { + // This forces the horizontal scrollbar to show when the column + // resizing occurs. It is not ideal, but will work for now. + + // using 'needCellsReconfigured' here rather than 'needCellsRebuilt' + // as otherwise performance suffers massively (RT-27831) + needCellsReconfigured = true; + if (getSkinnable() != null) { getSkinnable().requestLayout(); } }; - private ListChangeListener visibleLeafColumnsListener = - new ListChangeListener() { - @Override public void onChanged(Change c) { - updateVisibleColumnCount(); - while (c.next()) { - updateVisibleLeafColumnWidthListeners(c.getAddedSubList(), c.getRemoved()); - } - } - }; - - private InvalidationListener widthListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // This forces the horizontal scrollbar to show when the column - // resizing occurs. It is not ideal, but will work for now. - - // using 'needCellsReconfigured' here rather than 'needCellsRebuilt' - // as otherwise performance suffers massively (RT-27831) - needCellsReconfigured = true; - if (getSkinnable() != null) { - getSkinnable().requestLayout(); - } - } - }; - - private ChangeListener> itemsChangeListener = - new ChangeListener>() { - @Override public void changed(ObservableValue> observable, - ObservableList oldList, ObservableList newList) { + private ChangeListener> itemsChangeListener = + (observable, oldList, newList) -> { updateTableItems(oldList, newList); - } - }; + }; private WeakListChangeListener weakRowCountListener = new WeakListChangeListener(rowCountListener); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java @@ -95,25 +95,19 @@ { getStyleClass().add("content"); - addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler() { - @Override public void handle(MouseEvent event) { - getBehavior().mousePressed(event); - event.consume(); - } + addEventHandler(MouseEvent.MOUSE_PRESSED, event -> { + getBehavior().mousePressed(event); + event.consume(); }); - addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override public void handle(MouseEvent event) { - getBehavior().mouseReleased(event); - event.consume(); - } + addEventHandler(MouseEvent.MOUSE_RELEASED, event -> { + getBehavior().mouseReleased(event); + event.consume(); }); - addEventHandler(MouseEvent.MOUSE_DRAGGED, new EventHandler() { - @Override public void handle(MouseEvent event) { - getBehavior().mouseDragged(event); - event.consume(); - } + addEventHandler(MouseEvent.MOUSE_DRAGGED, event -> { + getBehavior().mouseDragged(event); + event.consume(); }); } @@ -383,19 +377,16 @@ private Path characterBoundingPath = new Path(); private Timeline scrollSelectionTimeline = new Timeline(); - private EventHandler scrollSelectionHandler = new EventHandler() { - @Override - public void handle(ActionEvent event) { - switch (scrollDirection) { - case UP: { - // TODO Get previous offset - break; - } + private EventHandler scrollSelectionHandler = event -> { + switch (scrollDirection) { + case UP: { + // TODO Get previous offset + break; + } - case DOWN: { - // TODO Get next offset - break; - } + case DOWN: { + // TODO Get next offset + break; } } }; @@ -416,20 +407,16 @@ return textArea.getCaretPosition(); } }; - caretPosition.addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - targetCaretX = -1; - if (newValue.intValue() > oldValue.intValue()) { - setForwardBias(true); - } + caretPosition.addListener((observable, oldValue, newValue) -> { + targetCaretX = -1; + if (newValue.intValue() > oldValue.intValue()) { + setForwardBias(true); } }); - forwardBiasProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (textArea.getWidth() > 0) { - updateTextNodeCaretPos(textArea.getCaretPosition()); - } + forwardBiasProperty().addListener(observable -> { + if (textArea.getWidth() > 0) { + updateTextNodeCaretPos(textArea.getCaretPosition()); } }); @@ -443,12 +430,9 @@ scrollPane.setContent(contentView); getChildren().add(scrollPane); - getSkinnable().addEventFilter(ScrollEvent.ANY, new EventHandler() { - @Override - public void handle(ScrollEvent event) { - if (event.isDirect() && handlePressed) { - event.consume(); - } + getSkinnable().addEventFilter(ScrollEvent.ANY, event -> { + if (event.isDirect() && handlePressed) { + event.consume(); } }); @@ -480,18 +464,12 @@ contentView.getChildren().addAll(caretHandle, selectionHandle1, selectionHandle2); } - scrollPane.hvalueProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - getSkinnable().setScrollLeft(newValue.doubleValue() * getScrollLeftMax()); - } + scrollPane.hvalueProperty().addListener((observable, oldValue, newValue) -> { + getSkinnable().setScrollLeft(newValue.doubleValue() * getScrollLeftMax()); }); - scrollPane.vvalueProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - getSkinnable().setScrollTop(newValue.doubleValue() * getScrollTopMax()); - } + scrollPane.vvalueProperty().addListener((observable, oldValue, newValue) -> { + getSkinnable().setScrollTop(newValue.doubleValue() * getScrollTopMax()); }); // Initialize the scroll selection timeline @@ -506,127 +484,98 @@ addParagraphNode(i, paragraph.toString()); } - textArea.selectionProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, IndexRange oldValue, IndexRange newValue) { - // TODO Why do we need two calls here? - textArea.requestLayout(); - contentView.requestLayout(); - } + textArea.selectionProperty().addListener((observable, oldValue, newValue) -> { + // TODO Why do we need two calls here? + textArea.requestLayout(); + contentView.requestLayout(); }); - textArea.wrapTextProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - invalidateMetrics(); - scrollPane.setFitToWidth(newValue); - } + textArea.wrapTextProperty().addListener((observable, oldValue, newValue) -> { + invalidateMetrics(); + scrollPane.setFitToWidth(newValue); }); - textArea.prefColumnCountProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - invalidateMetrics(); - updatePrefViewportWidth(); - } + textArea.prefColumnCountProperty().addListener((observable, oldValue, newValue) -> { + invalidateMetrics(); + updatePrefViewportWidth(); }); - textArea.prefRowCountProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - invalidateMetrics(); - updatePrefViewportHeight(); - } + textArea.prefRowCountProperty().addListener((observable, oldValue, newValue) -> { + invalidateMetrics(); + updatePrefViewportHeight(); }); updateFontMetrics(); - fontMetrics.addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateFontMetrics(); - } + fontMetrics.addListener(valueModel -> { + updateFontMetrics(); }); - contentView.paddingProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updatePrefViewportWidth(); - updatePrefViewportHeight(); - } + contentView.paddingProperty().addListener(valueModel -> { + updatePrefViewportWidth(); + updatePrefViewportHeight(); }); - scrollPane.viewportBoundsProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (scrollPane.getViewportBounds() != null) { - // ScrollPane creates a new Bounds instance for each - // layout pass, so we need to check if the width/height - // have really changed to avoid infinite layout requests. - Bounds newViewportBounds = scrollPane.getViewportBounds(); - if (oldViewportBounds == null || - oldViewportBounds.getWidth() != newViewportBounds.getWidth() || - oldViewportBounds.getHeight() != newViewportBounds.getHeight()) { + scrollPane.viewportBoundsProperty().addListener(valueModel -> { + if (scrollPane.getViewportBounds() != null) { + // ScrollPane creates a new Bounds instance for each + // layout pass, so we need to check if the width/height + // have really changed to avoid infinite layout requests. + Bounds newViewportBounds = scrollPane.getViewportBounds(); + if (oldViewportBounds == null || + oldViewportBounds.getWidth() != newViewportBounds.getWidth() || + oldViewportBounds.getHeight() != newViewportBounds.getHeight()) { - invalidateMetrics(); - oldViewportBounds = newViewportBounds; - contentView.requestLayout(); - } + invalidateMetrics(); + oldViewportBounds = newViewportBounds; + contentView.requestLayout(); } } }); - textArea.scrollTopProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - double vValue = (newValue.doubleValue() < getScrollTopMax()) - ? (newValue.doubleValue() / getScrollTopMax()) : 1.0; - scrollPane.setVvalue(vValue); - } + textArea.scrollTopProperty().addListener((observable, oldValue, newValue) -> { + double vValue = (newValue.doubleValue() < getScrollTopMax()) + ? (newValue.doubleValue() / getScrollTopMax()) : 1.0; + scrollPane.setVvalue(vValue); }); - textArea.scrollLeftProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - double hValue = (newValue.doubleValue() < getScrollLeftMax()) - ? (newValue.doubleValue() / getScrollLeftMax()) : 1.0; - scrollPane.setHvalue(hValue); - } + textArea.scrollLeftProperty().addListener((observable, oldValue, newValue) -> { + double hValue = (newValue.doubleValue() < getScrollLeftMax()) + ? (newValue.doubleValue() / getScrollLeftMax()) : 1.0; + scrollPane.setHvalue(hValue); }); if (USE_MULTIPLE_NODES) { - textArea.getParagraphs().addListener(new ListChangeListener() { - @Override - public void onChanged(ListChangeListener.Change change) { - while (change.next()) { - int from = change.getFrom(); - int to = change.getTo(); - List removed = change.getRemoved(); - if (from < to) { + textArea.getParagraphs().addListener((ListChangeListener.Change change) -> { + while (change.next()) { + int from = change.getFrom(); + int to = change.getTo(); + List removed = change.getRemoved(); + if (from < to) { - if (removed.isEmpty()) { - // This is an add - for (int i = from, n = to; i < n; i++) { - addParagraphNode(i, change.getList().get(i).toString()); - } - } else { - // This is an update - for (int i = from, n = to; i < n; i++) { - Node node = paragraphNodes.getChildren().get(i); - Text paragraphNode = (Text) node; - paragraphNode.setText(change.getList().get(i).toString()); - } + if (removed.isEmpty()) { + // This is an add + for (int i = from, n = to; i < n; i++) { + addParagraphNode(i, change.getList().get(i).toString()); } } else { - // This is a remove - paragraphNodes.getChildren().subList(from, from + removed.size()).clear(); + // This is an update + for (int i = from, n = to; i < n; i++) { + Node node = paragraphNodes.getChildren().get(i); + Text paragraphNode = (Text) node; + paragraphNode.setText(change.getList().get(i).toString()); + } } + } else { + // This is a remove + paragraphNodes.getChildren().subList(from, from + removed.size()).clear(); } } }); } else { - textArea.textProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - invalidateMetrics(); - ((Text)paragraphNodes.getChildren().get(0)).setText(textArea.textProperty().getValueSafe()); - contentView.requestLayout(); - } + textArea.textProperty().addListener(observable -> { + invalidateMetrics(); + ((Text)paragraphNodes.getChildren().get(0)).setText(textArea.textProperty().getValueSafe()); + contentView.requestLayout(); }); } @@ -644,11 +593,9 @@ createPromptNode(); } - usePromptText.addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - createPromptNode(); - textArea.requestLayout(); - } + usePromptText.addListener(observable -> { + createPromptNode(); + textArea.requestLayout(); }); updateHighlightFill(); @@ -659,20 +606,15 @@ if (SHOW_HANDLES) { selectionHandle1.setRotate(180); - EventHandler handlePressHandler = new EventHandler() { - @Override public void handle(MouseEvent e) { - pressX = e.getX(); - pressY = e.getY(); - handlePressed = true; - e.consume(); - } + EventHandler handlePressHandler = e -> { + pressX = e.getX(); + pressY = e.getY(); + handlePressed = true; + e.consume(); }; - EventHandler handleReleaseHandler = new EventHandler() { - @Override - public void handle(MouseEvent event) { - handlePressed = false; - } + EventHandler handleReleaseHandler = event -> { + handlePressed = false; }; caretHandle.setOnMousePressed(handlePressHandler); @@ -683,26 +625,24 @@ selectionHandle1.setOnMouseReleased(handleReleaseHandler); selectionHandle2.setOnMouseReleased(handleReleaseHandler); - caretHandle.setOnMouseDragged(new EventHandler() { - @Override public void handle(MouseEvent e) { - Text textNode = getTextNode(); - Point2D tp = textNode.localToScene(0, 0); - Point2D p = new Point2D(e.getSceneX() - tp.getX() + 10/*??*/ - pressX + caretHandle.getWidth() / 2, - e.getSceneY() - tp.getY() - pressY - 6); - HitInfo hit = textNode.impl_hitTestChar(translateCaretPosition(p)); - int pos = hit.getCharIndex(); - if (pos > 0) { - int oldPos = textNode.getImpl_caretPosition(); - textNode.setImpl_caretPosition(pos); - PathElement element = textNode.getImpl_caretShape()[0]; - if (element instanceof MoveTo && ((MoveTo)element).getY() > e.getY() - getTextTranslateY()) { - hit.setCharIndex(pos - 1); - } - textNode.setImpl_caretPosition(oldPos); + caretHandle.setOnMouseDragged(e -> { + Text textNode = getTextNode(); + Point2D tp = textNode.localToScene(0, 0); + Point2D p = new Point2D(e.getSceneX() - tp.getX() + 10/*??*/ - pressX + caretHandle.getWidth() / 2, + e.getSceneY() - tp.getY() - pressY - 6); + HitInfo hit = textNode.impl_hitTestChar(translateCaretPosition(p)); + int pos = hit.getCharIndex(); + if (pos > 0) { + int oldPos = textNode.getImpl_caretPosition(); + textNode.setImpl_caretPosition(pos); + PathElement element = textNode.getImpl_caretShape()[0]; + if (element instanceof MoveTo && ((MoveTo)element).getY() > e.getY() - getTextTranslateY()) { + hit.setCharIndex(pos - 1); } - positionCaret(hit, false, false); - e.consume(); + textNode.setImpl_caretPosition(oldPos); } + positionCaret(hit, false, false); + e.consume(); }); selectionHandle1.setOnMouseDragged(new EventHandler() { @@ -786,11 +726,9 @@ paragraphNode.setTextOrigin(VPos.TOP); paragraphNode.setManaged(false); paragraphNode.getStyleClass().add("text"); - paragraphNode.boundsTypeProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, TextBoundsType oldValue, TextBoundsType newValue) { - invalidateMetrics(); - updateFontMetrics(); - } + paragraphNode.boundsTypeProperty().addListener((observable, oldValue, newValue) -> { + invalidateMetrics(); + updateFontMetrics(); }); paragraphNodes.getChildren().add(i, paragraphNode); @@ -996,15 +934,12 @@ // removed the bounds are not immediately updated; is this really // necessary? - Platform.runLater(new Runnable() { - @Override - public void run() { - if (getSkinnable().getLength() == 0) { - return; - } - Rectangle2D characterBounds = getCharacterBounds(index); - scrollBoundsToVisible(characterBounds); + Platform.runLater(() -> { + if (getSkinnable().getLength() == 0) { + return; } + Rectangle2D characterBounds = getCharacterBounds(index); + scrollBoundsToVisible(characterBounds); }); } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java @@ -138,25 +138,20 @@ behavior.setTextFieldSkin(this); - textField.caretPositionProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - if (textField.getWidth() > 0) { - updateTextNodeCaretPos(textField.getCaretPosition()); - if (!isForwardBias()) { - setForwardBias(true); - } - updateCaretOff(); + textField.caretPositionProperty().addListener((observable, oldValue, newValue) -> { + if (textField.getWidth() > 0) { + updateTextNodeCaretPos(textField.getCaretPosition()); + if (!isForwardBias()) { + setForwardBias(true); } + updateCaretOff(); } }); - forwardBiasProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (textField.getWidth() > 0) { - updateTextNodeCaretPos(textField.getCaretPosition()); - updateCaretOff(); - } + forwardBiasProperty().addListener(observable -> { + if (textField.getWidth() > 0) { + updateTextNodeCaretPos(textField.getCaretPosition()); + updateCaretOff(); } }); @@ -208,10 +203,8 @@ }); // updated by listener on caretPosition to ensure order updateTextNodeCaretPos(textField.getCaretPosition()); - textField.selectionProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateSelection(); - } + textField.selectionProperty().addListener(observable -> { + updateSelection(); }); // Add selection @@ -220,10 +213,8 @@ selectionHighlightPath.layoutXProperty().bind(textTranslateX); selectionHighlightPath.visibleProperty().bind(textField.anchorProperty().isNotEqualTo(textField.caretPositionProperty()).and(textField.focusedProperty())); selectionHighlightPath.fillProperty().bind(highlightFill); - textNode.impl_selectionShapeProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateSelection(); - } + textNode.impl_selectionShapeProperty().addListener(observable -> { + updateSelection(); }); // Add caret @@ -241,42 +232,36 @@ } }); caretPath.layoutXProperty().bind(textTranslateX); - textNode.impl_caretShapeProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - caretPath.getElements().setAll(textNode.impl_caretShapeProperty().get()); - if (caretPath.getElements().size() == 0) { - // The caret pos is invalid. - updateTextNodeCaretPos(textField.getCaretPosition()); - } else if (caretPath.getElements().size() == 4) { - // The caret is split. Ignore and keep the previous width value. - } else { - caretWidth = Math.round(caretPath.getLayoutBounds().getWidth()); - } + textNode.impl_caretShapeProperty().addListener(observable -> { + caretPath.getElements().setAll(textNode.impl_caretShapeProperty().get()); + if (caretPath.getElements().size() == 0) { + // The caret pos is invalid. + updateTextNodeCaretPos(textField.getCaretPosition()); + } else if (caretPath.getElements().size() == 4) { + // The caret is split. Ignore and keep the previous width value. + } else { + caretWidth = Math.round(caretPath.getLayoutBounds().getWidth()); } }); // Be sure to get the control to request layout when the font changes, // since this will affect the pref height and pref width. - textField.fontProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // I do both so that any cached values for prefWidth/height are cleared. - // The problem is that the skin is unmanaged and so calling request layout - // doesn't walk up the tree all the way. I think.... - textField.requestLayout(); - getSkinnable().requestLayout(); - } + textField.fontProperty().addListener(observable -> { + // I do both so that any cached values for prefWidth/height are cleared. + // The problem is that the skin is unmanaged and so calling request layout + // doesn't walk up the tree all the way. I think.... + textField.requestLayout(); + getSkinnable().requestLayout(); }); registerChangeListener(textField.prefColumnCountProperty(), "prefColumnCount"); if (textField.isFocused()) setCaretAnimating(true); - textField.alignmentProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (textField.getWidth() > 0) { - updateTextPos(); - updateCaretOff(); - textField.requestLayout(); - } + textField.alignmentProperty().addListener(observable -> { + if (textField.getWidth() > 0) { + updateTextPos(); + updateCaretOff(); + textField.requestLayout(); } }); @@ -293,18 +278,14 @@ } }; - promptTextFill.addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateTextPos(); - } + promptTextFill.addListener(observable -> { + updateTextPos(); }); - textField.textProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (!getBehavior().isEditing()) { - // Text changed, but not by user action - updateTextPos(); - } + textField.textProperty().addListener(observable -> { + if (!getBehavior().isEditing()) { + // Text changed, but not by user action + updateTextPos(); } }); @@ -312,36 +293,30 @@ createPromptNode(); } - usePromptText.addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - createPromptNode(); - textField.requestLayout(); - } + usePromptText.addListener(observable -> { + createPromptNode(); + textField.requestLayout(); }); if (SHOW_HANDLES) { selectionHandle1.setRotate(180); - EventHandler handlePressHandler = new EventHandler() { - @Override public void handle(MouseEvent e) { - pressX = e.getX(); - pressY = e.getY(); - e.consume(); - } + EventHandler handlePressHandler = e -> { + pressX = e.getX(); + pressY = e.getY(); + e.consume(); }; caretHandle.setOnMousePressed(handlePressHandler); selectionHandle1.setOnMousePressed(handlePressHandler); selectionHandle2.setOnMousePressed(handlePressHandler); - caretHandle.setOnMouseDragged(new EventHandler() { - @Override public void handle(MouseEvent e) { - Point2D p = new Point2D(caretHandle.getLayoutX() + e.getX() + pressX - textNode.getLayoutX(), - caretHandle.getLayoutY() + e.getY() - pressY - 6); - HitInfo hit = textNode.impl_hitTestChar(translateCaretPosition(p)); - positionCaret(hit, false); - e.consume(); - } + caretHandle.setOnMouseDragged(e -> { + Point2D p = new Point2D(caretHandle.getLayoutX() + e.getX() + pressX - textNode.getLayoutX(), + caretHandle.getLayoutY() + e.getY() - pressY - 6); + HitInfo hit = textNode.impl_hitTestChar(translateCaretPosition(p)); + positionCaret(hit, false); + e.consume(); }); selectionHandle1.setOnMouseDragged(new EventHandler() { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java @@ -99,16 +99,14 @@ static boolean preload = false; static { - AccessController.doPrivileged(new PrivilegedAction() { - @Override public Void run() { - String s = System.getProperty("com.sun.javafx.virtualKeyboard.preload"); - if (s != null) { - if (s.equalsIgnoreCase("PRERENDER")) { - preload = true; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + String s = System.getProperty("com.sun.javafx.virtualKeyboard.preload"); + if (s != null) { + if (s.equalsIgnoreCase("PRERENDER")) { + preload = true; } - return null; } + return null; }); } @@ -361,29 +359,25 @@ } } } - textInput.focusedProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (USE_FXVK) { - Scene scene = getSkinnable().getScene(); - if (textInput.isEditable() && textInput.isFocused()) { - FXVK.attach(textInput); - } else if (scene == null || - scene.getWindow() == null || - !scene.getWindow().isFocused() || - !(scene.getFocusOwner() instanceof TextInputControl && - ((TextInputControl)scene.getFocusOwner()).isEditable())) { - FXVK.detach(); - } + textInput.focusedProperty().addListener(observable -> { + if (USE_FXVK) { + Scene scene = getSkinnable().getScene(); + if (textInput.isEditable() && textInput.isFocused()) { + FXVK.attach(textInput); + } else if (scene == null || + scene.getWindow() == null || + !scene.getWindow().isFocused() || + !(scene.getFocusOwner() instanceof TextInputControl && + ((TextInputControl)scene.getFocusOwner()).isEditable())) { + FXVK.detach(); } } }); } if (textInput.getOnInputMethodTextChanged() == null) { - textInput.setOnInputMethodTextChanged(new EventHandler() { - @Override public void handle(InputMethodEvent event) { - handleInputMethodEvent(event); - } + textInput.setOnInputMethodTextChanged(event -> { + handleInputMethodEvent(event); }); } @@ -643,19 +637,15 @@ caretTimeline.setCycleCount(Timeline.INDEFINITE); caretTimeline.getKeyFrames().addAll( new KeyFrame(Duration.ZERO, - new EventHandler() { - @Override - public void handle(final ActionEvent event) { - setBlink(false); - } - }), + event -> { + setBlink(false); + } + ), new KeyFrame(Duration.seconds(.5), - new EventHandler() { - @Override - public void handle(final ActionEvent event) { - setBlink(true); - } - }), + event -> { + setBlink(true); + } + ), new KeyFrame(Duration.seconds(1))); } @@ -681,10 +671,8 @@ class ContextMenuItem extends MenuItem { ContextMenuItem(final String action) { super(getString("TextInputControl.menu." + action)); - setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - getBehavior().callAction(action); - } + setOnAction(e -> { + getBehavior().callAction(action); }); } } diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TitledPaneSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TitledPaneSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TitledPaneSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TitledPaneSkin.java @@ -297,48 +297,40 @@ if (getSkinnable().isExpanded()) { k1 = new KeyFrame( Duration.ZERO, - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { // start expand if (CACHE_ANIMATION) content.setCache(true); content.setVisible(true); - } - }, + }, new KeyValue(transitionProperty(), transitionStartValue) ); k2 = new KeyFrame( duration, - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { // end expand if (CACHE_ANIMATION) content.setCache(false); - } - }, + }, new KeyValue(transitionProperty(), 1, Interpolator.LINEAR) ); } else { k1 = new KeyFrame( Duration.ZERO, - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { // Start collapse if (CACHE_ANIMATION) content.setCache(true); - } - }, + }, new KeyValue(transitionProperty(), transitionStartValue) ); k2 = new KeyFrame( duration, - new EventHandler() { - @Override public void handle(ActionEvent event) { + event -> { // end collapse content.setVisible(false); if (CACHE_ANIMATION) content.setCache(false); - } - }, + }, new KeyValue(transitionProperty(), 0, Interpolator.LINEAR) ); } @@ -372,16 +364,14 @@ setAlignment(Pos.CENTER_LEFT); - setOnMouseReleased(new EventHandler() { - @Override public void handle(MouseEvent e) { - if( e.getButton() != MouseButton.PRIMARY ) return; - ContextMenu contextMenu = getSkinnable().getContextMenu() ; - if (contextMenu != null) { - contextMenu.hide() ; - } - if (getSkinnable().isCollapsible() && getSkinnable().isFocused()) { - getBehavior().toggle(); - } + setOnMouseReleased(e -> { + if( e.getButton() != MouseButton.PRIMARY ) return; + ContextMenu contextMenu = getSkinnable().getContextMenu() ; + if (contextMenu != null) { + contextMenu.hide() ; + } + if (getSkinnable().isCollapsible() && getSkinnable().isFocused()) { + getBehavior().toggle(); } }); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ToolBarSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ToolBarSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ToolBarSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ToolBarSkin.java @@ -188,35 +188,29 @@ }); getSkinnable().setImpl_traversalEngine(engine); - toolbar.focusedProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (newValue) { - // TODO need to detect the focus direction - // to selected the first control in the toolbar when TAB is pressed - // or select the last control in the toolbar when SHIFT TAB is pressed. - if (!box.getChildren().isEmpty()) { - box.getChildren().get(0).requestFocus(); - } else { - overflowMenu.requestFocus(); - } + toolbar.focusedProperty().addListener((observable, oldValue, newValue) -> { + if (newValue) { + // TODO need to detect the focus direction + // to selected the first control in the toolbar when TAB is pressed + // or select the last control in the toolbar when SHIFT TAB is pressed. + if (!box.getChildren().isEmpty()) { + box.getChildren().get(0).requestFocus(); + } else { + overflowMenu.requestFocus(); } } }); - toolbar.getItems().addListener(new ListChangeListener() { - @Override - public void onChanged(Change c) { - while (c.next()) { - for (Node n: c.getRemoved()) { - box.getChildren().remove(n); - } - box.getChildren().addAll(c.getAddedSubList()); + toolbar.getItems().addListener((ListChangeListener) c -> { + while (c.next()) { + for (Node n: c.getRemoved()) { + box.getChildren().remove(n); } - needsUpdate = true; - getSkinnable().requestLayout(); + box.getChildren().addAll(c.getAddedSubList()); } - }); + needsUpdate = true; + getSkinnable().requestLayout(); + }); } private DoubleProperty spacing; @@ -574,63 +568,49 @@ this.menuItems = items; downArrow = new StackPane(); downArrow.getStyleClass().setAll("arrow"); - downArrow.setOnMousePressed(new EventHandler() { - @Override public void handle(MouseEvent me) { + downArrow.setOnMousePressed(me -> { + fire(); + }); + + setOnKeyPressed(ke -> { + if (KeyCode.SPACE.equals(ke.getCode())) { + if (!popup.isShowing()) { + popup.getItems().clear(); + popup.getItems().addAll(menuItems); + popup.show(downArrow, Side.BOTTOM, 0, 0); + } + ke.consume(); + } else if (KeyCode.ESCAPE.equals(ke.getCode())) { + if (popup.isShowing()) { + popup.hide(); + } + ke.consume(); + } else if (KeyCode.ENTER.equals(ke.getCode())) { fire(); + ke.consume(); } }); - setOnKeyPressed(new EventHandler() { - @Override public void handle(KeyEvent ke) { - if (KeyCode.SPACE.equals(ke.getCode())) { - if (!popup.isShowing()) { - popup.getItems().clear(); - popup.getItems().addAll(menuItems); - popup.show(downArrow, Side.BOTTOM, 0, 0); - } - ke.consume(); - } else if (KeyCode.ESCAPE.equals(ke.getCode())) { - if (popup.isShowing()) { - popup.hide(); - } - ke.consume(); - } else if (KeyCode.ENTER.equals(ke.getCode())) { - fire(); - ke.consume(); + focusedProperty().addListener((observable, oldValue, newValue) -> { + if (newValue) { + if (!popup.isShowing()) { + popup.getItems().clear(); + popup.getItems().addAll(menuItems); + popup.show(downArrow, Side.BOTTOM, 0, 0); + } + } else { + if (popup.isShowing()) { + popup.hide(); } } }); - focusedProperty().addListener(new ChangeListener() { - @Override - public void changed( - ObservableValue observable, - Boolean oldValue, Boolean newValue) { + visibleProperty().addListener((observable, oldValue, newValue) -> { if (newValue) { - if (!popup.isShowing()) { - popup.getItems().clear(); - popup.getItems().addAll(menuItems); - popup.show(downArrow, Side.BOTTOM, 0, 0); + if (box.getChildren().isEmpty()) { + setFocusTraversable(true); } - } else { - if (popup.isShowing()) { - popup.hide(); - } } - } - }); - - visibleProperty().addListener(new ChangeListener() { - @Override - public void changed( - ObservableValue observable, - Boolean oldValue, Boolean newValue) { - if (newValue) { - if (box.getChildren().isEmpty()) { - setFocusTraversable(true); - } - } - } }); popup = new ContextMenu(); setVisible(false); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeCellSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeCellSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeCellSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeCellSkin.java @@ -99,13 +99,11 @@ private double fixedCellSize; private boolean fixedCellSizeEnabled; - private MultiplePropertyChangeListenerHandler treeItemListener = new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String p) { - if ("EXPANDED".equals(p)) { - updateDisclosureNodeRotation(true); - } - return null; + private MultiplePropertyChangeListenerHandler treeItemListener = new MultiplePropertyChangeListenerHandler(p -> { + if ("EXPANDED".equals(p)) { + updateDisclosureNodeRotation(true); } + return null; }); public TreeCellSkin(TreeCell control) { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableRowSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableRowSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableRowSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableRowSkin.java @@ -104,14 +104,12 @@ * * **************************************************************************/ - private MultiplePropertyChangeListenerHandler treeItemListener = new MultiplePropertyChangeListenerHandler(new Callback() { - @Override public Void call(String p) { - if ("GRAPHIC".equals(p)) { - disclosureNodeDirty = true; - getSkinnable().requestLayout(); - } - return null; + private MultiplePropertyChangeListenerHandler treeItemListener = new MultiplePropertyChangeListenerHandler(p -> { + if ("GRAPHIC".equals(p)) { + disclosureNodeDirty = true; + getSkinnable().requestLayout(); } + return null; }); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java @@ -68,58 +68,36 @@ setRoot(getSkinnable().getRoot()); - EventHandler ml = new EventHandler() { - @Override public void handle(MouseEvent event) { - // RT-15127: cancel editing on scroll. This is a bit extreme - // (we are cancelling editing on touching the scrollbars). - // This can be improved at a later date. - if (treeTableView.getEditingCell() != null) { - treeTableView.edit(-1, null); - } - - // This ensures that the table maintains the focus, even when the vbar - // and hbar controls inside the flow are clicked. Without this, the - // focus border will not be shown when the user interacts with the - // scrollbars, and more importantly, keyboard navigation won't be - // available to the user. - treeTableView.requestFocus(); + EventHandler ml = event -> { + // RT-15127: cancel editing on scroll. This is a bit extreme + // (we are cancelling editing on touching the scrollbars). + // This can be improved at a later date. + if (treeTableView.getEditingCell() != null) { + treeTableView.edit(-1, null); } + + // This ensures that the table maintains the focus, even when the vbar + // and hbar controls inside the flow are clicked. Without this, the + // focus border will not be shown when the user interacts with the + // scrollbars, and more importantly, keyboard navigation won't be + // available to the user. + treeTableView.requestFocus(); }; flow.getVbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); flow.getHbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); // init the behavior 'closures' TreeTableViewBehavior behavior = getBehavior(); - behavior.setOnFocusPreviousRow(new Runnable() { - @Override public void run() { onFocusPreviousCell(); } - }); - behavior.setOnFocusNextRow(new Runnable() { - @Override public void run() { onFocusNextCell(); } - }); - behavior.setOnMoveToFirstCell(new Runnable() { - @Override public void run() { onMoveToFirstCell(); } - }); - behavior.setOnMoveToLastCell(new Runnable() { - @Override public void run() { onMoveToLastCell(); } - }); - behavior.setOnScrollPageDown(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageDown(isFocusDriven); } - }); - behavior.setOnScrollPageUp(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageUp(isFocusDriven); } - }); - behavior.setOnSelectPreviousRow(new Runnable() { - @Override public void run() { onSelectPreviousCell(); } - }); - behavior.setOnSelectNextRow(new Runnable() { - @Override public void run() { onSelectNextCell(); } - }); - behavior.setOnSelectLeftCell(new Runnable() { - @Override public void run() { onSelectLeftCell(); } - }); - behavior.setOnSelectRightCell(new Runnable() { - @Override public void run() { onSelectRightCell(); } - }); + behavior.setOnFocusPreviousRow(() -> { onFocusPreviousCell(); }); + behavior.setOnFocusNextRow(() -> { onFocusNextCell(); }); + behavior.setOnMoveToFirstCell(() -> { onMoveToFirstCell(); }); + behavior.setOnMoveToLastCell(() -> { onMoveToLastCell(); }); + behavior.setOnScrollPageDown(isFocusDriven -> onScrollPageDown(isFocusDriven)); + behavior.setOnScrollPageUp(isFocusDriven -> onScrollPageUp(isFocusDriven)); + behavior.setOnSelectPreviousRow(() -> { onSelectPreviousCell(); }); + behavior.setOnSelectNextRow(() -> { onSelectNextCell(); }); + behavior.setOnSelectLeftCell(() -> { onSelectLeftCell(); }); + behavior.setOnSelectRightCell(() -> { onSelectRightCell(); }); registerChangeListener(treeTableView.rootProperty(), "ROOT"); registerChangeListener(treeTableView.showRootProperty(), "SHOW_ROOT"); @@ -170,32 +148,30 @@ private TreeTableView treeTableView; private WeakReference> weakRootRef; - private EventHandler> rootListener = new EventHandler>() { - @Override public void handle(TreeItem.TreeModificationEvent e) { - if (e.wasAdded() && e.wasRemoved() && e.getAddedSize() == e.getRemovedSize()) { - // Fix for RT-14842, where the children of a TreeItem were changing, - // but because the overall item count was staying the same, there was - // no event being fired to the skin to be informed that the items - // had changed. So, here we just watch for the case where the number - // of items being added is equal to the number of items being removed. - rowCountDirty = true; - getSkinnable().requestLayout(); - } else if (e.getEventType().equals(TreeItem.valueChangedEvent())) { - // Fix for RT-14971 and RT-15338. - needCellsRebuilt = true; - getSkinnable().requestLayout(); - } else { - // Fix for RT-20090. We are checking to see if the event coming - // from the TreeItem root is an event where the count has changed. - EventType eventType = e.getEventType(); - while (eventType != null) { - if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { - rowCountDirty = true; - getSkinnable().requestLayout(); - break; - } - eventType = eventType.getSuperType(); + private EventHandler> rootListener = e -> { + if (e.wasAdded() && e.wasRemoved() && e.getAddedSize() == e.getRemovedSize()) { + // Fix for RT-14842, where the children of a TreeItem were changing, + // but because the overall item count was staying the same, there was + // no event being fired to the skin to be informed that the items + // had changed. So, here we just watch for the case where the number + // of items being added is equal to the number of items being removed. + rowCountDirty = true; + getSkinnable().requestLayout(); + } else if (e.getEventType().equals(TreeItem.valueChangedEvent())) { + // Fix for RT-14971 and RT-15338. + needCellsRebuilt = true; + getSkinnable().requestLayout(); + } else { + // Fix for RT-20090. We are checking to see if the event coming + // from the TreeItem root is an event where the count has changed. + EventType eventType = e.getEventType(); + while (eventType != null) { + if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { + rowCountDirty = true; + getSkinnable().requestLayout(); + break; } + eventType = eventType.getSuperType(); } } }; diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeViewSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeViewSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeViewSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeViewSkin.java @@ -57,12 +57,7 @@ // on embedded systems with touch screens which do not generate scroll // events for touch drag gestures. private static final boolean IS_PANNABLE = - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Boolean run() { - return Boolean.getBoolean("com.sun.javafx.scene.control.skin.TreeViewSkin.pannable"); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> Boolean.getBoolean("com.sun.javafx.scene.control.skin.TreeViewSkin.pannable")); public TreeViewSkin(final TreeView treeView) { @@ -71,60 +66,38 @@ // init the VirtualFlow flow.setPannable(IS_PANNABLE); flow.setFocusTraversable(getSkinnable().isFocusTraversable()); - flow.setCreateCell(new Callback>() { - @Override public TreeCell call(VirtualFlow flow) { - return TreeViewSkin.this.createCell(); - } - }); + flow.setCreateCell(flow1 -> TreeViewSkin.this.createCell()); flow.setFixedCellSize(treeView.getFixedCellSize()); getChildren().add(flow); setRoot(getSkinnable().getRoot()); - EventHandler ml = new EventHandler() { - @Override public void handle(MouseEvent event) { - // RT-15127: cancel editing on scroll. This is a bit extreme - // (we are cancelling editing on touching the scrollbars). - // This can be improved at a later date. - if (treeView.getEditingItem() != null) { - treeView.edit(null); - } - - // This ensures that the tree maintains the focus, even when the vbar - // and hbar controls inside the flow are clicked. Without this, the - // focus border will not be shown when the user interacts with the - // scrollbars, and more importantly, keyboard navigation won't be - // available to the user. - treeView.requestFocus(); } - }; + EventHandler ml = event -> { + // RT-15127: cancel editing on scroll. This is a bit extreme + // (we are cancelling editing on touching the scrollbars). + // This can be improved at a later date. + if (treeView.getEditingItem() != null) { + treeView.edit(null); + } + + // This ensures that the tree maintains the focus, even when the vbar + // and hbar controls inside the flow are clicked. Without this, the + // focus border will not be shown when the user interacts with the + // scrollbars, and more importantly, keyboard navigation won't be + // available to the user. + treeView.requestFocus(); }; flow.getVbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); flow.getHbar().addEventFilter(MouseEvent.MOUSE_PRESSED, ml); // init the behavior 'closures' - getBehavior().setOnFocusPreviousRow(new Runnable() { - @Override public void run() { onFocusPreviousCell(); } - }); - getBehavior().setOnFocusNextRow(new Runnable() { - @Override public void run() { onFocusNextCell(); } - }); - getBehavior().setOnMoveToFirstCell(new Runnable() { - @Override public void run() { onMoveToFirstCell(); } - }); - getBehavior().setOnMoveToLastCell(new Runnable() { - @Override public void run() { onMoveToLastCell(); } - }); - getBehavior().setOnScrollPageDown(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageDown(isFocusDriven); } - }); - getBehavior().setOnScrollPageUp(new Callback() { - @Override public Integer call(Boolean isFocusDriven) { return onScrollPageUp(isFocusDriven); } - }); - getBehavior().setOnSelectPreviousRow(new Runnable() { - @Override public void run() { onSelectPreviousCell(); } - }); - getBehavior().setOnSelectNextRow(new Runnable() { - @Override public void run() { onSelectNextCell(); } - }); + getBehavior().setOnFocusPreviousRow(() -> { onFocusPreviousCell(); }); + getBehavior().setOnFocusNextRow(() -> { onFocusNextCell(); }); + getBehavior().setOnMoveToFirstCell(() -> { onMoveToFirstCell(); }); + getBehavior().setOnMoveToLastCell(() -> { onMoveToLastCell(); }); + getBehavior().setOnScrollPageDown(isFocusDriven -> onScrollPageDown(isFocusDriven)); + getBehavior().setOnScrollPageUp(isFocusDriven -> onScrollPageUp(isFocusDriven)); + getBehavior().setOnSelectPreviousRow(() -> { onSelectPreviousCell(); }); + getBehavior().setOnSelectNextRow(() -> { onSelectNextCell(); }); registerChangeListener(treeView.rootProperty(), "ROOT"); registerChangeListener(treeView.showRootProperty(), "SHOW_ROOT"); @@ -162,32 +135,30 @@ private boolean needCellsRebuilt = true; private boolean needCellsReconfigured = false; - private EventHandler rootListener = new EventHandler() { - @Override public void handle(TreeModificationEvent e) { - if (e.wasAdded() && e.wasRemoved() && e.getAddedSize() == e.getRemovedSize()) { - // Fix for RT-14842, where the children of a TreeItem were changing, - // but because the overall item count was staying the same, there was - // no event being fired to the skin to be informed that the items - // had changed. So, here we just watch for the case where the number - // of items being added is equal to the number of items being removed. - rowCountDirty = true; - getSkinnable().requestLayout(); - } else if (e.getEventType().equals(TreeItem.valueChangedEvent())) { - // Fix for RT-14971 and RT-15338. - needCellsRebuilt = true; - getSkinnable().requestLayout(); - } else { - // Fix for RT-20090. We are checking to see if the event coming - // from the TreeItem root is an event where the count has changed. - EventType eventType = e.getEventType(); - while (eventType != null) { - if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { - rowCountDirty = true; - getSkinnable().requestLayout(); - break; - } - eventType = eventType.getSuperType(); + private EventHandler rootListener = e -> { + if (e.wasAdded() && e.wasRemoved() && e.getAddedSize() == e.getRemovedSize()) { + // Fix for RT-14842, where the children of a TreeItem were changing, + // but because the overall item count was staying the same, there was + // no event being fired to the skin to be informed that the items + // had changed. So, here we just watch for the case where the number + // of items being added is equal to the number of items being removed. + rowCountDirty = true; + getSkinnable().requestLayout(); + } else if (e.getEventType().equals(TreeItem.valueChangedEvent())) { + // Fix for RT-14971 and RT-15338. + needCellsRebuilt = true; + getSkinnable().requestLayout(); + } else { + // Fix for RT-20090. We are checking to see if the event coming + // from the TreeItem root is an event where the count has changed. + EventType eventType = e.getEventType(); + while (eventType != null) { + if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { + rowCountDirty = true; + getSkinnable().requestLayout(); + break; } + eventType = eventType.getSuperType(); } } }; @@ -282,10 +253,8 @@ private WeakReference> treeItemRef; - private InvalidationListener treeItemGraphicListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateDisplay(getItem(), isEmpty()); - } + private InvalidationListener treeItemGraphicListener = observable -> { + updateDisplay(getItem(), isEmpty()); }; private InvalidationListener treeItemListener = new InvalidationListener() { diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualContainerBase.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualContainerBase.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualContainerBase.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualContainerBase.java @@ -47,18 +47,16 @@ super(control, behavior); flow = createVirtualFlow(); - control.addEventHandler(ScrollToEvent.scrollToTopIndex(), new EventHandler>() { - @Override public void handle(ScrollToEvent event) { - // Fix for RT-24630: The row count in VirtualFlow was incorrect - // (normally zero), so the scrollTo call was misbehaving. - if (rowCountDirty) { - // update row count before we do a scroll - updateRowCount(); - rowCountDirty = false; - } - flow.scrollTo(event.getScrollTarget()); + control.addEventHandler(ScrollToEvent.scrollToTopIndex(), event -> { + // Fix for RT-24630: The row count in VirtualFlow was incorrect + // (normally zero), so the scrollTo call was misbehaving. + if (rowCountDirty) { + // update row count before we do a scroll + updateRowCount(); + rowCountDirty = false; } - }); + flow.scrollTo(event.getScrollTarget()); + }); } /** diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java @@ -496,37 +496,28 @@ ** In a VirtualFlow a vertical scroll should scroll on the vertical only, ** whereas in a horizontal ScrollBar it can scroll horizontally. */ - final EventDispatcher blockEventDispatcher = new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - // block the event from being passed down to children - return event; - } - }; + final EventDispatcher blockEventDispatcher = (event, tail) -> event; // block ScrollEvent from being passed down to scrollbar's skin final EventDispatcher oldHsbEventDispatcher = hbar.getEventDispatcher(); - hbar.setEventDispatcher(new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if (event.getEventType() == ScrollEvent.SCROLL && - !((ScrollEvent)event).isDirect()) { - tail = tail.prepend(blockEventDispatcher); - tail = tail.prepend(oldHsbEventDispatcher); - return tail.dispatchEvent(event); - } - return oldHsbEventDispatcher.dispatchEvent(event, tail); - } + hbar.setEventDispatcher((event, tail) -> { + if (event.getEventType() == ScrollEvent.SCROLL && + !((ScrollEvent)event).isDirect()) { + tail = tail.prepend(blockEventDispatcher); + tail = tail.prepend(oldHsbEventDispatcher); + return tail.dispatchEvent(event); + } + return oldHsbEventDispatcher.dispatchEvent(event, tail); }); // block ScrollEvent from being passed down to scrollbar's skin final EventDispatcher oldVsbEventDispatcher = vbar.getEventDispatcher(); - vbar.setEventDispatcher(new EventDispatcher() { - @Override public Event dispatchEvent(Event event, EventDispatchChain tail) { - if (event.getEventType() == ScrollEvent.SCROLL && - !((ScrollEvent)event).isDirect()) { - tail = tail.prepend(blockEventDispatcher); - tail = tail.prepend(oldVsbEventDispatcher); - return tail.dispatchEvent(event); - } - return oldVsbEventDispatcher.dispatchEvent(event, tail); - } + vbar.setEventDispatcher((event, tail) -> { + if (event.getEventType() == ScrollEvent.SCROLL && + !((ScrollEvent)event).isDirect()) { + tail = tail.prepend(blockEventDispatcher); + tail = tail.prepend(oldVsbEventDispatcher); + return tail.dispatchEvent(event); + } + return oldVsbEventDispatcher.dispatchEvent(event, tail); }); /* ** listen for ScrollEvents over the whole of the VirtualFlow @@ -662,60 +653,54 @@ || hbar.getBoundsInParent().contains(e.getX(), e.getY())); } }); - addEventFilter(MouseEvent.MOUSE_RELEASED, new EventHandler() { - @Override - public void handle(MouseEvent e) { - mouseDown = false; - if (BehaviorSkinBase.IS_TOUCH_SUPPORTED) { - startSBReleasedAnimation(); - } + addEventFilter(MouseEvent.MOUSE_RELEASED, e -> { + mouseDown = false; + if (BehaviorSkinBase.IS_TOUCH_SUPPORTED) { + startSBReleasedAnimation(); } }); - addEventFilter(MouseEvent.MOUSE_DRAGGED, new EventHandler() { - @Override - public void handle(MouseEvent e) { - if (BehaviorSkinBase.IS_TOUCH_SUPPORTED) { - scrollBarOn(); - } - if (! isPanning || ! isPannable()) return; + addEventFilter(MouseEvent.MOUSE_DRAGGED, e -> { + if (BehaviorSkinBase.IS_TOUCH_SUPPORTED) { + scrollBarOn(); + } + if (! isPanning || ! isPannable()) return; - // With panning enabled, we support panning in both vertical - // and horizontal directions, regardless of the fact that - // VirtualFlow is virtual in only one direction. - double xDelta = lastX - e.getX(); - double yDelta = lastY - e.getY(); + // With panning enabled, we support panning in both vertical + // and horizontal directions, regardless of the fact that + // VirtualFlow is virtual in only one direction. + double xDelta = lastX - e.getX(); + double yDelta = lastY - e.getY(); - // figure out the distance that the mouse moved in the virtual - // direction, and then perform the movement along that axis - // virtualDelta will contain the amount we actually did move - double virtualDelta = isVertical() ? yDelta : xDelta; - double actual = adjustPixels(virtualDelta); - if (actual != 0) { - // update last* here, as we know we've just adjusted the - // scrollbar. This means we don't get the situation where a - // user presses-and-drags a long way past the min or max - // values, only to change directions and see the scrollbar - // start moving immediately. - if (isVertical()) lastY = e.getY(); - else lastX = e.getX(); - } + // figure out the distance that the mouse moved in the virtual + // direction, and then perform the movement along that axis + // virtualDelta will contain the amount we actually did move + double virtualDelta = isVertical() ? yDelta : xDelta; + double actual = adjustPixels(virtualDelta); + if (actual != 0) { + // update last* here, as we know we've just adjusted the + // scrollbar. This means we don't get the situation where a + // user presses-and-drags a long way past the min or max + // values, only to change directions and see the scrollbar + // start moving immediately. + if (isVertical()) lastY = e.getY(); + else lastX = e.getX(); + } - // similarly, we do the same in the non-virtual direction - double nonVirtualDelta = isVertical() ? xDelta : yDelta; - ScrollBar nonVirtualBar = isVertical() ? hbar : vbar; - if (nonVirtualBar.isVisible()) { - double newValue = nonVirtualBar.getValue() + nonVirtualDelta; - if (newValue < nonVirtualBar.getMin()) { - nonVirtualBar.setValue(nonVirtualBar.getMin()); - } else if (newValue > nonVirtualBar.getMax()) { - nonVirtualBar.setValue(nonVirtualBar.getMax()); - } else { - nonVirtualBar.setValue(newValue); + // similarly, we do the same in the non-virtual direction + double nonVirtualDelta = isVertical() ? xDelta : yDelta; + ScrollBar nonVirtualBar = isVertical() ? hbar : vbar; + if (nonVirtualBar.isVisible()) { + double newValue = nonVirtualBar.getValue() + nonVirtualDelta; + if (newValue < nonVirtualBar.getMin()) { + nonVirtualBar.setValue(nonVirtualBar.getMin()); + } else if (newValue > nonVirtualBar.getMax()) { + nonVirtualBar.setValue(nonVirtualBar.getMax()); + } else { + nonVirtualBar.setValue(newValue); - // same as the last* comment above - if (isVertical()) lastX = e.getX(); - else lastY = e.getY(); - } + // same as the last* comment above + if (isVertical()) lastX = e.getX(); + else lastY = e.getY(); } } }); @@ -729,19 +714,15 @@ */ // --- vbar vbar.setOrientation(Orientation.VERTICAL); - vbar.addEventHandler(MouseEvent.ANY, new EventHandler() { - @Override public void handle(MouseEvent event) { - event.consume(); - } + vbar.addEventHandler(MouseEvent.ANY, event -> { + event.consume(); }); getChildren().add(vbar); // --- hbar hbar.setOrientation(Orientation.HORIZONTAL); - hbar.addEventHandler(MouseEvent.ANY, new EventHandler() { - @Override public void handle(MouseEvent event) { - event.consume(); - } + hbar.addEventHandler(MouseEvent.ANY, event -> { + event.consume(); }); getChildren().add(hbar); @@ -754,10 +735,8 @@ // initBinds // clipView binds - InvalidationListener listenerX = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateHbar(); - } + InvalidationListener listenerX = valueModel -> { + updateHbar(); }; verticalProperty().addListener(listenerX); hbar.valueProperty().addListener(listenerX); @@ -771,21 +750,16 @@ // addChangedListener(VERTICAL, listenerY); // vbar.addChangedListener(ScrollBar.VALUE, listenerY); - ChangeListener listenerY = new ChangeListener() { - @Override public void changed(ObservableValue ov, Object t, Object t1) { - clipView.setClipY(isVertical() ? 0 : vbar.getValue()); - } + ChangeListener listenerY = (ov, t, t1) -> { + clipView.setClipY(isVertical() ? 0 : vbar.getValue()); }; vbar.valueProperty().addListener(listenerY); - super.heightProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldHeight, Number newHeight) { - // Fix for RT-8480, where the VirtualFlow does not show its content - // after changing size to 0 and back. - if (oldHeight.doubleValue() == 0 && newHeight.doubleValue() > 0) { - recreateCells(); - } + super.heightProperty().addListener((observable, oldHeight, newHeight) -> { + // Fix for RT-8480, where the VirtualFlow does not show its content + // after changing size to 0 and back. + if (oldHeight.doubleValue() == 0 && newHeight.doubleValue() > 0) { + recreateCells(); } }); @@ -794,18 +768,14 @@ ** there are certain animations that need to know if the touch is ** happening..... */ - setOnTouchPressed(new EventHandler() { - @Override public void handle(TouchEvent e) { - touchDetected = true; - scrollBarOn(); - } + setOnTouchPressed(e -> { + touchDetected = true; + scrollBarOn(); }); - setOnTouchReleased(new EventHandler() { - @Override public void handle(TouchEvent e) { - touchDetected = false; - startSBReleasedAnimation(); - } + setOnTouchReleased(e -> { + touchDetected = false; + startSBReleasedAnimation(); }); @@ -2561,15 +2531,11 @@ setClip(clipRect); // --- clipping - super.widthProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - clipRect.setWidth(getWidth()); - } + super.widthProperty().addListener(valueModel -> { + clipRect.setWidth(getWidth()); }); - super.heightProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - clipRect.setHeight(getHeight()); - } + super.heightProperty().addListener(valueModel -> { + clipRect.setHeight(getHeight()); }); } } @@ -2742,19 +2708,15 @@ ** while after a scroll/drag */ sbTouchTimeline = new Timeline(); - sbTouchKF1 = new KeyFrame(Duration.millis(0), new EventHandler() { - @Override public void handle(ActionEvent event) { - tempVisibility = true; - requestLayout(); - } + sbTouchKF1 = new KeyFrame(Duration.millis(0), event -> { + tempVisibility = true; + requestLayout(); }); - sbTouchKF2 = new KeyFrame(Duration.millis(1000), new EventHandler() { - @Override public void handle(ActionEvent event) { - if (touchDetected == false && mouseDown == false) { - tempVisibility = false; - requestLayout(); - } + sbTouchKF2 = new KeyFrame(Duration.millis(1000), event -> { + if (touchDetected == false && mouseDown == false) { + tempVisibility = false; + requestLayout(); } }); sbTouchTimeline.getKeyFrames().addAll(sbTouchKF1, sbTouchKF2); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualScrollBar.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualScrollBar.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualScrollBar.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualScrollBar.java @@ -47,14 +47,12 @@ public VirtualScrollBar(final VirtualFlow flow) { this.flow = flow; - super.valueProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - if (isVirtual()/* && oldValue != newValue*/) { - if (adjusting) { - // no-op - } else { - flow.setPosition(getValue()); - } + super.valueProperty().addListener(valueModel -> { + if (isVirtual()/* && oldValue != newValue*/) { + if (adjusting) { + // no-op + } else { + flow.setPosition(getValue()); } } }); diff --git a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/WebColorFieldSkin.java @@ -48,10 +48,8 @@ // Whenever the value changes on the control, we need to update the text // in the TextField. The only time this is not the case is when the update // to the control happened as a result of an update in the text textField. - control.valueProperty().addListener(integerFieldValueListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateText(); - } + control.valueProperty().addListener(integerFieldValueListener = observable -> { + updateText(); }); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/AreaChart.java b/modules/controls/src/main/java/javafx/scene/chart/AreaChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/AreaChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/AreaChart.java @@ -293,11 +293,9 @@ symbol.setOpacity(0); FadeTransition ft = new FadeTransition(Duration.millis(500),symbol); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }); ft.play(); } @@ -305,12 +303,10 @@ animate( new KeyFrame(Duration.ZERO, new KeyValue(item.currentYProperty(), item.getCurrentY()), new KeyValue(item.currentXProperty(), item.getCurrentX())), - new KeyFrame(Duration.millis(800), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - item.setSeries(null); - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + new KeyFrame(Duration.millis(800), actionEvent -> { + item.setSeries(null); + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }, new KeyValue(item.currentYProperty(), item.getYValue(), Interpolator.EASE_BOTH), @@ -436,11 +432,9 @@ Timeline tl = new Timeline(); tl.getKeyFrames().addAll( new KeyFrame(Duration.ZERO,startValues), - new KeyFrame(Duration.millis(400), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().removeAll(nodes); - removeSeriesFromDisplay(series); - } + new KeyFrame(Duration.millis(400), actionEvent -> { + getPlotChildren().removeAll(nodes); + removeSeriesFromDisplay(series); },endValues) ); tl.play(); diff --git a/modules/controls/src/main/java/javafx/scene/chart/Axis.java b/modules/controls/src/main/java/javafx/scene/chart/Axis.java --- a/modules/controls/src/main/java/javafx/scene/chart/Axis.java +++ b/modules/controls/src/main/java/javafx/scene/chart/Axis.java @@ -656,10 +656,8 @@ if (shouldAnimate()) { FadeTransition ft = new FadeTransition(Duration.millis(250),tick.textNode); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getChildren().remove(tm.textNode); - } + ft.setOnFinished(actionEvent -> { + getChildren().remove(tm.textNode); }); ft.play(); } else { diff --git a/modules/controls/src/main/java/javafx/scene/chart/BarChart.java b/modules/controls/src/main/java/javafx/scene/chart/BarChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/BarChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/BarChart.java @@ -230,11 +230,9 @@ if (shouldAnimate()) { XYValueMap.clear(); dataRemoveTimeline = createDataRemoveTimeline(item, bar, series); - dataRemoveTimeline.setOnFinished(new EventHandler() { - public void handle(ActionEvent event) { - item.setSeries(null); - removeDataItemFromDisplay(series, item); - } + dataRemoveTimeline.setOnFinished(event -> { + item.setSeries(null); + removeDataItemFromDisplay(series, item); }); dataRemoveTimeline.play(); } else { @@ -298,10 +296,8 @@ // remove all symbol nodes if (shouldAnimate()) { pt = new ParallelTransition(); - pt.setOnFinished(new EventHandler() { - public void handle(ActionEvent event) { - removeSeriesFromDisplay(series); - } + pt.setOnFinished(event -> { + removeSeriesFromDisplay(series); }); boolean lastSeries = (getSeriesSize() > 1) ? false : true; @@ -317,10 +313,8 @@ FadeTransition ft = new FadeTransition(Duration.millis(700),bar); ft.setFromValue(1); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - processDataRemove(series, d); - } + ft.setOnFinished(actionEvent -> { + processDataRemove(series, d); }); pt.getChildren().add(ft); } @@ -468,12 +462,10 @@ item.setYValue(getYAxis().toRealValue(bottomPos)); t.getKeyFrames().addAll(new KeyFrame(Duration.ZERO, new KeyValue(item.currentYProperty(), item.getCurrentY())), - new KeyFrame(Duration.millis(700), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { + new KeyFrame(Duration.millis(700), actionEvent -> { processDataRemove(series, item); XYValueMap.clear(); - } - }, + }, new KeyValue(item.currentYProperty(), item.getYValue(), Interpolator.EASE_BOTH) )); } else { @@ -481,12 +473,10 @@ XYValueMap.put(item, ((Number)item.getXValue()).doubleValue()); item.setXValue(getXAxis().toRealValue(getXAxis().getZeroPosition())); t.getKeyFrames().addAll(new KeyFrame(Duration.ZERO, new KeyValue(item.currentXProperty(), item.getCurrentX())), - new KeyFrame(Duration.millis(700), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - processDataRemove(series, item); - XYValueMap.clear(); - } - }, + new KeyFrame(Duration.millis(700), actionEvent -> { + processDataRemove(series, item); + XYValueMap.clear(); + }, new KeyValue(item.currentXProperty(), item.getXValue(), Interpolator.EASE_BOTH) )); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/BubbleChart.java b/modules/controls/src/main/java/javafx/scene/chart/BubbleChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/BubbleChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/BubbleChart.java @@ -160,11 +160,9 @@ // fade out old bubble FadeTransition ft = new FadeTransition(Duration.millis(500),bubble); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(bubble); - removeDataItemFromDisplay(series, item); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(bubble); + removeDataItemFromDisplay(series, item); }); ft.play(); } else { @@ -199,20 +197,16 @@ // remove all bubble nodes if (shouldAnimate()) { ParallelTransition pt = new ParallelTransition(); - pt.setOnFinished(new EventHandler() { - public void handle(ActionEvent event) { - removeSeriesFromDisplay(series); - } + pt.setOnFinished(event -> { + removeSeriesFromDisplay(series); }); for (XYChart.Data d : series.getData()) { final Node bubble = d.getNode(); // fade out old bubble FadeTransition ft = new FadeTransition(Duration.millis(500),bubble); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(bubble); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(bubble); }); pt.getChildren().add(ft); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/CategoryAxis.java b/modules/controls/src/main/java/javafx/scene/chart/CategoryAxis.java --- a/modules/controls/src/main/java/javafx/scene/chart/CategoryAxis.java +++ b/modules/controls/src/main/java/javafx/scene/chart/CategoryAxis.java @@ -68,22 +68,20 @@ private final DoubleProperty firstCategoryPos = new SimpleDoubleProperty(this, "firstCategoryPos", 0); private Object currentAnimationID; private final ChartLayoutAnimator animator = new ChartLayoutAnimator(this); - private ListChangeListener itemsListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if(!c.getAddedSubList().isEmpty()) { - // remove duplicates else they will get rendered on the chart. - // Ideally we should be using a Set for categories. - for (String addedStr : c.getAddedSubList()) - checkAndRemoveDuplicates(addedStr); - } - if (!isAutoRanging()) { - allDataCategories.clear(); - allDataCategories.addAll(getCategories()); - rangeValid = false; + private ListChangeListener itemsListener = c -> { + while (c.next()) { + if(!c.getAddedSubList().isEmpty()) { + // remove duplicates else they will get rendered on the chart. + // Ideally we should be using a Set for categories. + for (String addedStr : c.getAddedSubList()) + checkAndRemoveDuplicates(addedStr); } - requestAxisLayout(); + if (!isAutoRanging()) { + allDataCategories.clear(); + allDataCategories.addAll(getCategories()); + rangeValid = false; } + requestAxisLayout(); } }; diff --git a/modules/controls/src/main/java/javafx/scene/chart/LineChart.java b/modules/controls/src/main/java/javafx/scene/chart/LineChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/LineChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/LineChart.java @@ -311,12 +311,10 @@ symbol.setOpacity(0); fadeSymbolTransition = new FadeTransition(Duration.millis(500),symbol); fadeSymbolTransition.setToValue(0); - fadeSymbolTransition.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - item.setSeries(null); - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + fadeSymbolTransition.setOnFinished(actionEvent -> { + item.setSeries(null); + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }); fadeSymbolTransition.play(); } @@ -428,11 +426,9 @@ seriesRemoveTimeline = new Timeline(); seriesRemoveTimeline.getKeyFrames().addAll( new KeyFrame(Duration.ZERO,startValues), - new KeyFrame(Duration.millis(900), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().removeAll(nodes); - removeSeriesFromDisplay(series); - } + new KeyFrame(Duration.millis(900), actionEvent -> { + getPlotChildren().removeAll(nodes); + removeSeriesFromDisplay(series); },endValues) ); seriesRemoveTimeline.play(); @@ -515,12 +511,10 @@ t.getKeyFrames().addAll(new KeyFrame(Duration.ZERO, new KeyValue(item.currentYProperty(), item.getCurrentY()), new KeyValue(item.currentXProperty(), item.getCurrentX())), - new KeyFrame(Duration.millis(500), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - if (symbol != null) getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - XYValueMap.clear(); - } + new KeyFrame(Duration.millis(500), actionEvent -> { + if (symbol != null) getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); + XYValueMap.clear(); }, new KeyValue(item.currentYProperty(), item.getYValue(), Interpolator.EASE_BOTH), diff --git a/modules/controls/src/main/java/javafx/scene/chart/NumberAxis.java b/modules/controls/src/main/java/javafx/scene/chart/NumberAxis.java --- a/modules/controls/src/main/java/javafx/scene/chart/NumberAxis.java +++ b/modules/controls/src/main/java/javafx/scene/chart/NumberAxis.java @@ -488,10 +488,8 @@ */ public DefaultFormatter(final NumberAxis axis) { formatter = getFormatter(axis.isAutoRanging()? axis.currentRangeIndexProperty.get() : -1); - final ChangeListener axisListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Object oldValue, Object newValue) { - formatter = getFormatter(axis.isAutoRanging()? axis.currentRangeIndexProperty.get() : -1); - } + final ChangeListener axisListener = (observable, oldValue, newValue) -> { + formatter = getFormatter(axis.isAutoRanging()? axis.currentRangeIndexProperty.get() : -1); }; axis.currentRangeIndexProperty.addListener(axisListener); axis.autoRangingProperty().addListener(axisListener); diff --git a/modules/controls/src/main/java/javafx/scene/chart/PieChart.java b/modules/controls/src/main/java/javafx/scene/chart/PieChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/PieChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/PieChart.java @@ -99,61 +99,59 @@ private Legend legend = new Legend(); private Data dataItemBeingRemoved = null; private Timeline dataRemoveTimeline = null; - private final ListChangeListener dataChangeListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while(c.next()) { - // RT-28090 Probably a sort happened, just reorder the pointers. - if (c.wasPermutated()) { - Data ptr = begin; - for(int i = 0; i < getData().size(); i++) { - Data item = getData().get(i); - if (i == 0) { - begin = item; - ptr = begin; - begin.next = null; - } else { - ptr.next = item; - item.next = null; - ptr = item; - } - } - requestChartLayout(); - return; - } - // recreate linked list & set chart on new data - for(int i=c.getFrom(); i dataChangeListener = c -> { + while(c.next()) { + // RT-28090 Probably a sort happened, just reorder the pointers. + if (c.wasPermutated()) { + Data ptr = begin; + for(int i = 0; i < getData().size(); i++) { + Data item = getData().get(i); if (i == 0) { - getData().get(0).next = begin; - begin = getData().get(0); + begin = item; + ptr = begin; + begin.next = null; } else { - Data ptr = begin; - for (int j = 0; j < i -1 ; j++) { - ptr = ptr.next; - } - getData().get(i).next = ptr.next; - ptr.next = getData().get(i); + ptr.next = item; + item.next = null; + ptr = item; } } + requestChartLayout(); + return; } - // call data added/removed methods - for (Data item : c.getRemoved()) { - dataItemRemoved(item); + // recreate linked list & set chart on new data + for(int i=c.getFrom(); i 0 || c.getFrom() < c.getTo())) updateLegend(); - // re-layout everything - } - requestChartLayout(); } + // call data added/removed methods + for (Data item : c.getRemoved()) { + dataItemRemoved(item); + } + for(int i=c.getFrom(); i 0 || c.getFrom() < c.getTo())) updateLegend(); + // re-layout everything + } + requestChartLayout(); }; // -------------- PUBLIC PROPERTIES ---------------------------------------- @@ -408,8 +406,7 @@ new KeyValue(item.currentPieValueProperty(), item.getCurrentPieValue()), new KeyValue(item.radiusMultiplierProperty(), item.getRadiusMultiplier())), new KeyFrame(Duration.millis(500), - new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { + actionEvent -> { text.setOpacity(0); // RT-23597 : item's chart might have been set to null if // this item is added and removed before its add animation finishes. @@ -418,8 +415,7 @@ FadeTransition ft = new FadeTransition(Duration.millis(150),text); ft.setToValue(1); ft.play(); - } - }, + }, new KeyValue(item.currentPieValueProperty(), item.getPieValue(), Interpolator.EASE_BOTH), new KeyValue(item.radiusMultiplierProperty(), 1, Interpolator.EASE_BOTH)) ); @@ -458,8 +454,7 @@ new KeyValue(item.currentPieValueProperty(), item.getCurrentPieValue()), new KeyValue(item.radiusMultiplierProperty(), item.getRadiusMultiplier())), new KeyFrame(Duration.millis(500), - new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { + actionEvent -> { // removing item getChartChildren().remove(shape); // fade out label @@ -475,8 +470,7 @@ } }); ft.play(); - } - }, + }, new KeyValue(item.currentPieValueProperty(), 0, Interpolator.EASE_BOTH), new KeyValue(item.radiusMultiplierProperty(), 0)) ); diff --git a/modules/controls/src/main/java/javafx/scene/chart/ScatterChart.java b/modules/controls/src/main/java/javafx/scene/chart/ScatterChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/ScatterChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/ScatterChart.java @@ -106,11 +106,9 @@ // fade out old symbol FadeTransition ft = new FadeTransition(Duration.millis(500),symbol); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }); ft.play(); } else { @@ -136,20 +134,16 @@ // remove all symbol nodes if (shouldAnimate()) { ParallelTransition pt = new ParallelTransition(); - pt.setOnFinished(new EventHandler() { - public void handle(ActionEvent event) { - removeSeriesFromDisplay(series); - } + pt.setOnFinished(event -> { + removeSeriesFromDisplay(series); }); for (final Data d : series.getData()) { final Node symbol = d.getNode(); // fade out old symbol FadeTransition ft = new FadeTransition(Duration.millis(500),symbol); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(symbol); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(symbol); }); pt.getChildren().add(ft); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/StackedAreaChart.java b/modules/controls/src/main/java/javafx/scene/chart/StackedAreaChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/StackedAreaChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/StackedAreaChart.java @@ -275,11 +275,9 @@ symbol.setOpacity(0); FadeTransition ft = new FadeTransition(Duration.millis(500),symbol); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }); ft.play(); } @@ -287,11 +285,9 @@ animate( new KeyFrame(Duration.ZERO, new KeyValue(item.currentYProperty(), item.getCurrentY()), new KeyValue(item.currentXProperty(), item.getCurrentX())), - new KeyFrame(Duration.millis(800), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(symbol); - removeDataItemFromDisplay(series, item); - } + new KeyFrame(Duration.millis(800), actionEvent -> { + getPlotChildren().remove(symbol); + removeDataItemFromDisplay(series, item); }, new KeyValue(item.currentYProperty(), item.getYValue(), Interpolator.EASE_BOTH), @@ -394,22 +390,18 @@ Timeline tl = new Timeline(); tl.getKeyFrames().addAll( new KeyFrame(Duration.ZERO,startValues), - new KeyFrame(Duration.millis(400), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().removeAll(nodes); - removeSeriesFromDisplay(series); - } + new KeyFrame(Duration.millis(400), actionEvent -> { + getPlotChildren().removeAll(nodes); + removeSeriesFromDisplay(series); },endValues) ); tl.play(); } else { Timeline tl = new Timeline(); tl.getKeyFrames().addAll( - new KeyFrame(Duration.millis(400), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().removeAll(nodes); - removeSeriesFromDisplay(series); - } + new KeyFrame(Duration.millis(400), actionEvent -> { + getPlotChildren().removeAll(nodes); + removeSeriesFromDisplay(series); }) ); tl.play(); @@ -717,14 +709,12 @@ private void sortAggregateList(ArrayList aggregateList) { - Collections.sort(aggregateList, new Comparator(){ - public int compare(Object o1, Object o2) { - Data d1 = ((DataPointInfo)o1).dataItem; - Data d2 = ((DataPointInfo)o2).dataItem; - double val1 = getXAxis().toNumericValue(d1.getXValue()); - double val2 = getXAxis().toNumericValue(d2.getXValue()); - return (val1 < val2 ? -1 : ( val1 == val2) ? 0 : 1); - } + Collections.sort(aggregateList, (o1, o2) -> { + Data d1 = ((DataPointInfo)o1).dataItem; + Data d2 = ((DataPointInfo)o2).dataItem; + double val1 = getXAxis().toNumericValue(d1.getXValue()); + double val2 = getXAxis().toNumericValue(d2.getXValue()); + return (val1 < val2 ? -1 : ( val1 == val2) ? 0 : 1); }); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/StackedBarChart.java b/modules/controls/src/main/java/javafx/scene/chart/StackedBarChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/StackedBarChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/StackedBarChart.java @@ -215,11 +215,8 @@ final Node bar = item.getNode(); if (shouldAnimate()) { Timeline t = createDataRemoveTimeline(item, bar, series); - t.setOnFinished(new EventHandler() { - - public void handle(ActionEvent event) { - removeDataItemFromDisplay(series, item); - } + t.setOnFinished(event -> { + removeDataItemFromDisplay(series, item); }); t.play(); } else { @@ -323,10 +320,8 @@ t.getKeyFrames().addAll( new KeyFrame(Duration.ZERO, new KeyValue(currentDisplayedYValueProperty(item), getCurrentDisplayedYValue(item))), - new KeyFrame(Duration.millis(700), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(bar); - } + new KeyFrame(Duration.millis(700), actionEvent -> { + getPlotChildren().remove(bar); }, new KeyValue(currentDisplayedYValueProperty(item), item.getYValue(), Interpolator.EASE_BOTH))); } else { @@ -334,10 +329,8 @@ t.getKeyFrames().addAll( new KeyFrame(Duration.ZERO, new KeyValue(currentDisplayedXValueProperty(item), getCurrentDisplayedXValue(item))), - new KeyFrame(Duration.millis(700), new EventHandler() { - @Override public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(bar); - } + new KeyFrame(Duration.millis(700), actionEvent -> { + getPlotChildren().remove(bar); }, new KeyValue(currentDisplayedXValueProperty(item), item.getXValue(), Interpolator.EASE_BOTH))); } @@ -348,12 +341,9 @@ // remove all symbol nodes if (shouldAnimate()) { ParallelTransition pt = new ParallelTransition(); - pt.setOnFinished(new EventHandler() { - - public void handle(ActionEvent event) { - removeSeriesFromDisplay(series); - requestChartLayout(); - } + pt.setOnFinished(event -> { + removeSeriesFromDisplay(series); + requestChartLayout(); }); for (Data d : series.getData()) { final Node bar = d.getNode(); @@ -369,12 +359,8 @@ FadeTransition ft = new FadeTransition(Duration.millis(700), bar); ft.setFromValue(1); ft.setToValue(0); - ft.setOnFinished(new EventHandler() { - - @Override - public void handle(ActionEvent actionEvent) { - getPlotChildren().remove(bar); - } + ft.setOnFinished(actionEvent -> { + getPlotChildren().remove(bar); }); pt.getChildren().add(ft); } diff --git a/modules/controls/src/main/java/javafx/scene/chart/XYChart.java b/modules/controls/src/main/java/javafx/scene/chart/XYChart.java --- a/modules/controls/src/main/java/javafx/scene/chart/XYChart.java +++ b/modules/controls/src/main/java/javafx/scene/chart/XYChart.java @@ -107,72 +107,70 @@ /* start pointer of a series linked list. */ Series begin = null; /** This is called when a series is added or removed from the chart */ - private final ListChangeListener> seriesChanged = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - while (c.next()) { - if (c.getRemoved().size() > 0) updateLegend(); - for (Series series : c.getRemoved()) { - series.setToRemove = true; - series.setChart(null); - seriesRemoved(series); - int idx = seriesColorMap.remove(series); - colorBits.clear(idx); + private final ListChangeListener> seriesChanged = c -> { + while (c.next()) { + if (c.getRemoved().size() > 0) updateLegend(); + for (Series series : c.getRemoved()) { + series.setToRemove = true; + series.setChart(null); + seriesRemoved(series); + int idx = seriesColorMap.remove(series); + colorBits.clear(idx); // seriesDefaultColorIndex --; + } + for(int i=c.getFrom(); i series = c.getList().get(i); + // add new listener to data + series.setChart(XYChart.this); + if (series.setToRemove) { + series.setToRemove = false; + series.getChart().seriesBeingRemovedIsAdded(series); } - for(int i=c.getFrom(); i series = c.getList().get(i); - // add new listener to data - series.setChart(XYChart.this); - if (series.setToRemove) { - series.setToRemove = false; - series.getChart().seriesBeingRemovedIsAdded(series); + // update linkedList Pointers for series + if (XYChart.this.begin == null) { + XYChart.this.begin = getData().get(i); + XYChart.this.begin.next = null; + } else { + if (i == 0) { + getData().get(0).next = XYChart.this.begin; + begin = getData().get(0); + } else { + Series ptr = begin; + for (int j = 0; j < i -1 && ptr!=null ; j++) { + ptr = ptr.next; + } + if (ptr != null) { + getData().get(i).next = ptr.next; + ptr.next = getData().get(i); + } + } - // update linkedList Pointers for series - if (XYChart.this.begin == null) { - XYChart.this.begin = getData().get(i); - XYChart.this.begin.next = null; - } else { - if (i == 0) { - getData().get(0).next = XYChart.this.begin; - begin = getData().get(0); - } else { - Series ptr = begin; - for (int j = 0; j < i -1 && ptr!=null ; j++) { - ptr = ptr.next; - } - if (ptr != null) { - getData().get(i).next = ptr.next; - ptr.next = getData().get(i); - } - - } - } - // update default color style class - int nextClearBit = colorBits.nextClearBit(0); - colorBits.set(nextClearBit, true); - series.defaultColorStyleClass = DEFAULT_COLOR+(nextClearBit%8); - seriesColorMap.put(series, nextClearBit%8); - // inform sub-classes of series added - seriesAdded(series, i); } - if (c.getFrom() < c.getTo()) updateLegend(); - seriesChanged(c); - // RT-12069, linked list pointers should update when list is permutated. - if (c.wasPermutated() && getData().size() > 0) { - XYChart.this.begin = getData().get(0); - Series ptr = begin; - for(int k = 1; k < getData().size() && ptr != null; k++) { - ptr.next = getData().get(k); - ptr = ptr.next; - } - ptr.next = null; + // update default color style class + int nextClearBit = colorBits.nextClearBit(0); + colorBits.set(nextClearBit, true); + series.defaultColorStyleClass = DEFAULT_COLOR+(nextClearBit%8); + seriesColorMap.put(series, nextClearBit%8); + // inform sub-classes of series added + seriesAdded(series, i); + } + if (c.getFrom() < c.getTo()) updateLegend(); + seriesChanged(c); + // RT-12069, linked list pointers should update when list is permutated. + if (c.wasPermutated() && getData().size() > 0) { + XYChart.this.begin = getData().get(0); + Series ptr = begin; + for(int k = 1; k < getData().size() && ptr != null; k++) { + ptr.next = getData().get(k); + ptr = ptr.next; } + ptr.next = null; } - // update axis ranges - invalidateRange(); - // lay everything out - requestChartLayout(); } + // update axis ranges + invalidateRange(); + // lay everything out + requestChartLayout(); }; // -------------- PUBLIC PROPERTIES -------------------------------------------------------------------------------- @@ -438,15 +436,11 @@ this.yAxis = yAxis; if(yAxis.getSide() == null) yAxis.setSide(Side.LEFT); // RT-23123 autoranging leads to charts incorrect appearance. - xAxis.autoRangingProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, Boolean t, Boolean t1) { - updateAxisRange(); - } + xAxis.autoRangingProperty().addListener((ov, t, t1) -> { + updateAxisRange(); }); - yAxis.autoRangingProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, Boolean t, Boolean t1) { - updateAxisRange(); - } + yAxis.autoRangingProperty().addListener((ov, t, t1) -> { + updateAxisRange(); }); // add initial content to chart content getChartChildren().addAll(plotBackground,plotArea,xAxis,yAxis); @@ -475,11 +469,9 @@ plotContent.setManaged(false); plotArea.setManaged(false); // listen to animation on/off and sync to axis - animatedProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue valueModel, Boolean oldValue, Boolean newValue) { - if(getXAxis() != null) getXAxis().setAnimated(newValue); - if(getYAxis() != null) getYAxis().setAnimated(newValue); - } + animatedProperty().addListener((valueModel, oldValue, newValue) -> { + if(getXAxis() != null) getXAxis().setAnimated(newValue); + if(getYAxis() != null) getYAxis().setAnimated(newValue); }); } diff --git a/modules/controls/src/main/java/javafx/scene/control/CheckBoxTreeItem.java b/modules/controls/src/main/java/javafx/scene/control/CheckBoxTreeItem.java --- a/modules/controls/src/main/java/javafx/scene/control/CheckBoxTreeItem.java +++ b/modules/controls/src/main/java/javafx/scene/control/CheckBoxTreeItem.java @@ -186,10 +186,8 @@ * Callbacks * * * **************************************************************************/ - private final ChangeListener stateChangeListener = new ChangeListener() { - @Override public void changed(ObservableValue ov, Boolean oldVal, Boolean newVal) { - updateState(); - } + private final ChangeListener stateChangeListener = (ov, oldVal, newVal) -> { + updateState(); }; diff --git a/modules/controls/src/main/java/javafx/scene/control/ChoiceBox.java b/modules/controls/src/main/java/javafx/scene/control/ChoiceBox.java --- a/modules/controls/src/main/java/javafx/scene/control/ChoiceBox.java +++ b/modules/controls/src/main/java/javafx/scene/control/ChoiceBox.java @@ -103,13 +103,11 @@ // listen to the value property, if the value is // set to something that exists in the items list, update the // selection model to indicate that this is the selected item - valueProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, T t, T t1) { - if (getItems() == null) return; - int index = getItems().indexOf(t1); - if (index > -1) { - getSelectionModel().select(index); - } + valueProperty().addListener((ov, t, t1) -> { + if (getItems() == null) return; + int index = getItems().indexOf(t1); + if (index > -1) { + getSelectionModel().select(index); } }); } @@ -142,11 +140,9 @@ } }; - private ChangeListener selectedItemListener = new ChangeListener() { - @Override public void changed(ObservableValue ov, T t, T t1) { - if (! valueProperty().isBound()) { - setValue(t1); - } + private ChangeListener selectedItemListener = (ov, t, t1) -> { + if (! valueProperty().isBound()) { + setValue(t1); } }; @@ -224,28 +220,26 @@ public final ObservableList getItems() { return items.get(); } public final ObjectProperty> itemsProperty() { return items; } - private final ListChangeListener itemsListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - final SingleSelectionModel sm = getSelectionModel(); - if (sm!= null) { - if (getItems() == null || getItems().isEmpty()) { + private final ListChangeListener itemsListener = c -> { + final SingleSelectionModel sm = getSelectionModel(); + if (sm!= null) { + if (getItems() == null || getItems().isEmpty()) { + sm.clearSelection(); + } else { + int newIndex = getItems().indexOf(sm.getSelectedItem()); + sm.setSelectedIndex(newIndex); + } + } + if (sm != null) { + + // Look for the selected item as having been removed. If it has been, + // then we need to clear the selection in the selection model. + final T selectedItem = sm.getSelectedItem(); + while (c.next()) { + if (selectedItem != null && c.getRemoved().contains(selectedItem)) { sm.clearSelection(); - } else { - int newIndex = getItems().indexOf(sm.getSelectedItem()); - sm.setSelectedIndex(newIndex); - } - } - if (sm != null) { - - // Look for the selected item as having been removed. If it has been, - // then we need to clear the selection in the selection model. - final T selectedItem = sm.getSelectedItem(); - while (c.next()) { - if (selectedItem != null && c.getRemoved().contains(selectedItem)) { - sm.clearSelection(); - break; - } - } + break; + } } } }; @@ -341,15 +335,13 @@ */ // watching for changes to the items list content - final ListChangeListener itemsContentObserver = new ListChangeListener() { - @Override public void onChanged(Change c) { - if (choiceBox.getItems() == null || choiceBox.getItems().isEmpty()) { - setSelectedIndex(-1); - } else if (getSelectedIndex() == -1 && getSelectedItem() != null) { - int newIndex = choiceBox.getItems().indexOf(getSelectedItem()); - if (newIndex != -1) { - setSelectedIndex(newIndex); - } + final ListChangeListener itemsContentObserver = c -> { + if (choiceBox.getItems() == null || choiceBox.getItems().isEmpty()) { + setSelectedIndex(-1); + } else if (getSelectedIndex() == -1 && getSelectedItem() != null) { + int newIndex = choiceBox.getItems().indexOf(getSelectedItem()); + if (newIndex != -1) { + setSelectedIndex(newIndex); } } }; @@ -358,21 +350,18 @@ } // watching for changes to the items list - ChangeListener> itemsObserver = new ChangeListener>() { - @Override - public void changed(ObservableValue> valueModel, ObservableList oldList, ObservableList newList) { - if (oldList != null) { - oldList.removeListener(itemsContentObserver); - } - if (newList != null) { - newList.addListener(itemsContentObserver); - } - setSelectedIndex(-1); - if (getSelectedItem() != null) { - int newIndex = choiceBox.getItems().indexOf(getSelectedItem()); - if (newIndex != -1) { - setSelectedIndex(newIndex); - } + ChangeListener> itemsObserver = (valueModel, oldList, newList) -> { + if (oldList != null) { + oldList.removeListener(itemsContentObserver); + } + if (newList != null) { + newList.addListener(itemsContentObserver); + } + setSelectedIndex(-1); + if (getSelectedItem() != null) { + int newIndex = choiceBox.getItems().indexOf(getSelectedItem()); + if (newIndex != -1) { + setSelectedIndex(newIndex); } } }; diff --git a/modules/controls/src/main/java/javafx/scene/control/ComboBox.java b/modules/controls/src/main/java/javafx/scene/control/ComboBox.java --- a/modules/controls/src/main/java/javafx/scene/control/ComboBox.java +++ b/modules/controls/src/main/java/javafx/scene/control/ComboBox.java @@ -210,38 +210,34 @@ // listen to the value property input by the user, and if the value is // set to something that exists in the items list, we should update the // selection model to indicate that this is the selected item - valueProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, T t, T t1) { - if (getItems() == null) return; - - SelectionModel sm = getSelectionModel(); - int index = getItems().indexOf(t1); - - if (index == -1) { - sm.setSelectedItem(t1); - } else { - // we must compare the value here with the currently selected - // item. If they are different, we overwrite the selection - // properties to reflect the new value. - // We do this as there can be circumstances where there are - // multiple instances of a value in the ComboBox items list, - // and if we don't check here we may change the selection - // mistakenly because the indexOf above will return the first - // instance always, and selection may be on the second or - // later instances. This is RT-19227. - T selectedItem = sm.getSelectedItem(); - if (selectedItem == null || ! selectedItem.equals(getValue())) { - sm.clearAndSelect(index); - } + valueProperty().addListener((ov, t, t1) -> { + if (getItems() == null) return; + + SelectionModel sm = getSelectionModel(); + int index = getItems().indexOf(t1); + + if (index == -1) { + sm.setSelectedItem(t1); + } else { + // we must compare the value here with the currently selected + // item. If they are different, we overwrite the selection + // properties to reflect the new value. + // We do this as there can be circumstances where there are + // multiple instances of a value in the ComboBox items list, + // and if we don't check here we may change the selection + // mistakenly because the indexOf above will return the first + // instance always, and selection may be on the second or + // later instances. This is RT-19227. + T selectedItem = sm.getSelectedItem(); + if (selectedItem == null || ! selectedItem.equals(getValue())) { + sm.clearAndSelect(index); } } }); - editableProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable o) { - // when editable changes, we reset the selection / value states - getSelectionModel().clearSelection(); - } + editableProperty().addListener(o -> { + // when editable changes, we reset the selection / value states + getSelectionModel().clearSelection(); }); } @@ -474,12 +470,10 @@ } this.comboBox = cb; - selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - // we used to lazily retrieve the selected item, but now we just - // do it when the selection changes. - setSelectedItem(getModelItem(getSelectedIndex())); - } + selectedIndexProperty().addListener(valueModel -> { + // we used to lazily retrieve the selected item, but now we just + // do it when the selection changes. + setSelectedItem(getModelItem(getSelectedIndex())); }); /* @@ -524,12 +518,8 @@ }; // watching for changes to the items list - private final ChangeListener> itemsObserver = new ChangeListener>() { - @Override - public void changed(ObservableValue> valueModel, - ObservableList oldList, ObservableList newList) { - updateItemsObserver(oldList, newList); - } + private final ChangeListener> itemsObserver = (valueModel, oldList, newList) -> { + updateItemsObserver(oldList, newList); }; private WeakListChangeListener weakItemsContentObserver = diff --git a/modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java b/modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java --- a/modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java +++ b/modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java @@ -122,13 +122,11 @@ getStyleClass().add(DEFAULT_STYLE_CLASS); // Fix for RT-29885 - getProperties().addListener(new MapChangeListener() { - @Override public void onChanged(Change change) { - if (change.wasAdded()) { - if (change.getKey() == "FOCUSED") { - setFocused((Boolean)change.getValueAdded()); - getProperties().remove("FOCUSED"); - } + getProperties().addListener((MapChangeListener) change -> { + if (change.wasAdded()) { + if (change.getKey() == "FOCUSED") { + setFocused((Boolean)change.getValueAdded()); + getProperties().remove("FOCUSED"); } } }); diff --git a/modules/controls/src/main/java/javafx/scene/control/Control.java b/modules/controls/src/main/java/javafx/scene/control/Control.java --- a/modules/controls/src/main/java/javafx/scene/control/Control.java +++ b/modules/controls/src/main/java/javafx/scene/control/Control.java @@ -169,18 +169,16 @@ * classes which we'd otherwise have to create. When lambda expressions * are supported, we could do it that way instead (or use MethodHandles). */ - private final static EventHandler contextMenuHandler = new EventHandler() { - @Override public void handle(ContextMenuEvent event) { - if (event.isConsumed()) return; + private final static EventHandler contextMenuHandler = event -> { + if (event.isConsumed()) return; - // If a context menu was shown, consume the event to prevent multiple context menus - Object source = event.getSource(); - if (source instanceof Control) { - Control c = (Control) source; - if (c.getContextMenu() != null) { - c.getContextMenu().show(c, event.getScreenX(), event.getScreenY()); - event.consume(); - } + // If a context menu was shown, consume the event to prevent multiple context menus + Object source = event.getSource(); + if (source instanceof Control) { + Control c = (Control) source; + if (c.getContextMenu() != null) { + c.getContextMenu().show(c, event.getScreenX(), event.getScreenY()); + event.consume(); } } }; diff --git a/modules/controls/src/main/java/javafx/scene/control/DatePicker.java b/modules/controls/src/main/java/javafx/scene/control/DatePicker.java --- a/modules/controls/src/main/java/javafx/scene/control/DatePicker.java +++ b/modules/controls/src/main/java/javafx/scene/control/DatePicker.java @@ -115,32 +115,28 @@ public DatePicker() { this(null); - valueProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - LocalDate date = getValue(); - Chronology chrono = getChronology(); + valueProperty().addListener(observable -> { + LocalDate date = getValue(); + Chronology chrono = getChronology(); - if (validateDate(chrono, date)) { - lastValidDate = date; - } else { - System.err.println("Restoring value to " + - ((lastValidDate == null) ? "null" : getConverter().toString(lastValidDate))); - setValue(lastValidDate); - } + if (validateDate(chrono, date)) { + lastValidDate = date; + } else { + System.err.println("Restoring value to " + + ((lastValidDate == null) ? "null" : getConverter().toString(lastValidDate))); + setValue(lastValidDate); } }); - chronologyProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - LocalDate date = getValue(); - Chronology chrono = getChronology(); + chronologyProperty().addListener(observable -> { + LocalDate date = getValue(); + Chronology chrono = getChronology(); - if (validateDate(chrono, date)) { - lastValidChronology = chrono; - } else { - System.err.println("Restoring value to " + lastValidChronology); - setChronology(lastValidChronology); - } + if (validateDate(chrono, date)) { + lastValidChronology = chrono; + } else { + System.err.println("Restoring value to " + lastValidChronology); + setChronology(lastValidChronology); } }); } diff --git a/modules/controls/src/main/java/javafx/scene/control/FocusModel.java b/modules/controls/src/main/java/javafx/scene/control/FocusModel.java --- a/modules/controls/src/main/java/javafx/scene/control/FocusModel.java +++ b/modules/controls/src/main/java/javafx/scene/control/FocusModel.java @@ -48,12 +48,10 @@ * Creates a default FocusModel instance. */ public FocusModel() { - focusedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - // we used to lazily retrieve the focused item, but now we just - // do it when the focused index changes. - setFocusedItem(getModelItem(getFocusedIndex())); - } + focusedIndexProperty().addListener(valueModel -> { + // we used to lazily retrieve the focused item, but now we just + // do it when the focused index changes. + setFocusedItem(getModelItem(getFocusedIndex())); }); } diff --git a/modules/controls/src/main/java/javafx/scene/control/Label.java b/modules/controls/src/main/java/javafx/scene/control/Label.java --- a/modules/controls/src/main/java/javafx/scene/control/Label.java +++ b/modules/controls/src/main/java/javafx/scene/control/Label.java @@ -100,12 +100,8 @@ * * **************************************************************************/ - private ChangeListener mnemonicStateListener = new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - Label.this.impl_showMnemonicsProperty().setValue(newValue); - } - + private ChangeListener mnemonicStateListener = (observable, oldValue, newValue) -> { + Label.this.impl_showMnemonicsProperty().setValue(newValue); }; /** diff --git a/modules/controls/src/main/java/javafx/scene/control/ListCell.java b/modules/controls/src/main/java/javafx/scene/control/ListCell.java --- a/modules/controls/src/main/java/javafx/scene/control/ListCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/ListCell.java @@ -104,10 +104,8 @@ * editing. In such a case, we need to be notified so we can call startEdit * on our side. */ - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(Observable value) { - updateEditing(); - } + private final InvalidationListener editingListener = value -> { + updateEditing(); }; private boolean updateEditingIndex = true; @@ -115,10 +113,8 @@ * Listens to the selection model on the ListView. Whenever the selection model * is changed (updated), the selected property on the ListCell is updated accordingly. */ - private final ListChangeListener selectedListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - updateSelection(); - } + private final ListChangeListener selectedListener = c -> { + updateSelection(); }; /** @@ -149,10 +145,8 @@ * Listens to the items on the ListView. Whenever the items are changed in such a way that * it impacts the index of this ListCell, then we must update the item. */ - private final ListChangeListener itemsListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - updateItem(-1); - } + private final ListChangeListener itemsListener = c -> { + updateItem(-1); }; /** @@ -177,10 +171,8 @@ * Listens to the focus model on the ListView. Whenever the focus model changes, * the focused property on the ListCell is updated */ - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(Observable value) { - updateFocus(); - } + private final InvalidationListener focusedListener = value -> { + updateFocus(); }; /** diff --git a/modules/controls/src/main/java/javafx/scene/control/ListView.java b/modules/controls/src/main/java/javafx/scene/control/ListView.java --- a/modules/controls/src/main/java/javafx/scene/control/ListView.java +++ b/modules/controls/src/main/java/javafx/scene/control/ListView.java @@ -329,13 +329,11 @@ * * **************************************************************************/ - private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = new EventHandler>() { - @Override public void handle(ListView.EditEvent t) { - int index = t.getIndex(); - List list = getItems(); - if (index < 0 || index >= list.size()) return; - list.set(index, t.getNewValue()); - } + private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = t -> { + int index = t.getIndex(); + List list = getItems(); + if (index < 0 || index >= list.size()) return; + list.set(index, t.getNewValue()); }; @@ -1228,12 +1226,8 @@ }; // watching for changes to the items list - private final ChangeListener> itemsObserver = new ChangeListener>() { - @Override - public void changed(ObservableValue> valueModel, - ObservableList oldList, ObservableList newList) { - updateItemsObserver(oldList, newList); - } + private final ChangeListener> itemsObserver = (valueModel, oldList, newList) -> { + updateItemsObserver(oldList, newList); }; private WeakListChangeListener weakItemsContentObserver = @@ -1452,12 +1446,8 @@ updateItemCount(); } - private ChangeListener> itemsListener = new ChangeListener>() { - @Override - public void changed(ObservableValue> observable, - ObservableList oldList, ObservableList newList) { - updateItemsObserver(oldList, newList); - } + private ChangeListener> itemsListener = (observable, oldList, newList) -> { + updateItemsObserver(oldList, newList); }; private WeakChangeListener> weakItemsListener = diff --git a/modules/controls/src/main/java/javafx/scene/control/Menu.java b/modules/controls/src/main/java/javafx/scene/control/Menu.java --- a/modules/controls/src/main/java/javafx/scene/control/Menu.java +++ b/modules/controls/src/main/java/javafx/scene/control/Menu.java @@ -146,12 +146,10 @@ super(text,graphic); getStyleClass().add(DEFAULT_STYLE_CLASS); - parentPopupProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - for (int i = 0; i < getItems().size(); i++) { - MenuItem item = getItems().get(i); - item.setParentPopup(getParentPopup()); - } + parentPopupProperty().addListener(observable -> { + for (int i = 0; i < getItems().size(); i++) { + MenuItem item = getItems().get(i); + item.setParentPopup(getParentPopup()); } }); } diff --git a/modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java b/modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java --- a/modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java +++ b/modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java @@ -61,25 +61,19 @@ **********************************************************************/ public MultipleSelectionModelBase() { - selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - // we used to lazily retrieve the selected item, but now we just - // do it when the selection changes. This is hardly likely to be - // expensive, and we still lazily handle the multiple selection - // cases over in MultipleSelectionModel. - setSelectedItem(getModelItem(getSelectedIndex())); - } + selectedIndexProperty().addListener(valueModel -> { + // we used to lazily retrieve the selected item, but now we just + // do it when the selection changes. This is hardly likely to be + // expensive, and we still lazily handle the multiple selection + // cases over in MultipleSelectionModel. + setSelectedItem(getModelItem(getSelectedIndex())); }); selectedIndices = new BitSet(); selectedIndicesSeq = createListFromBitSet(selectedIndices); - final MappingChange.Map map = new MappingChange.Map() { - @Override public T map(Integer f) { - return getModelItem(f); - } - }; + final MappingChange.Map map = f -> getModelItem(f); selectedIndicesSeq.addListener(new ListChangeListener() { @Override public void onChanged(final Change c) { diff --git a/modules/controls/src/main/java/javafx/scene/control/SkinBase.java b/modules/controls/src/main/java/javafx/scene/control/SkinBase.java --- a/modules/controls/src/main/java/javafx/scene/control/SkinBase.java +++ b/modules/controls/src/main/java/javafx/scene/control/SkinBase.java @@ -81,15 +81,13 @@ * Mouse handler used for consuming all mouse events (preventing them * from bubbling up to parent) */ - private static final EventHandler mouseEventConsumer = new EventHandler() { - @Override public void handle(MouseEvent event) { - /* - ** we used to consume mouse wheel rotations here, - ** be we've switched to ScrollEvents, and only consume those which we use. - ** See RT-13995 & RT-14480 - */ - event.consume(); - } + private static final EventHandler mouseEventConsumer = event -> { + /* + ** we used to consume mouse wheel rotations here, + ** be we've switched to ScrollEvents, and only consume those which we use. + ** See RT-13995 & RT-14480 + */ + event.consume(); }; diff --git a/modules/controls/src/main/java/javafx/scene/control/Tab.java b/modules/controls/src/main/java/javafx/scene/control/Tab.java --- a/modules/controls/src/main/java/javafx/scene/control/Tab.java +++ b/modules/controls/src/main/java/javafx/scene/control/Tab.java @@ -250,10 +250,8 @@ return tabPane; } - private final InvalidationListener parentDisabledChangedListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateDisabled(); - } + private final InvalidationListener parentDisabledChangedListener = valueModel -> { + updateDisabled(); }; private StringProperty text; diff --git a/modules/controls/src/main/java/javafx/scene/control/TabPane.java b/modules/controls/src/main/java/javafx/scene/control/TabPane.java --- a/modules/controls/src/main/java/javafx/scene/control/TabPane.java +++ b/modules/controls/src/main/java/javafx/scene/control/TabPane.java @@ -107,19 +107,17 @@ getStyleClass().setAll("tab-pane"); setSelectionModel(new TabPaneSelectionModel(this)); - tabs.addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - for (Tab tab : c.getRemoved()) { - if (tab != null && !getTabs().contains(tab)) { - tab.setTabPane(null); - } + tabs.addListener((ListChangeListener) c -> { + while (c.next()) { + for (Tab tab : c.getRemoved()) { + if (tab != null && !getTabs().contains(tab)) { + tab.setTabPane(null); } + } - for (Tab tab : c.getAddedSubList()) { - if (tab != null) { - tab.setTabPane(TabPane.this); - } + for (Tab tab : c.getAddedSubList()) { + if (tab != null) { + tab.setTabPane(TabPane.this); } } } @@ -638,41 +636,39 @@ this.tabPane = t; // watching for changes to the items list content - final ListChangeListener itemsContentObserver = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - for (Tab tab : c.getRemoved()) { - if (tab != null && !tabPane.getTabs().contains(tab)) { - if (getSelectedIndex() == 0 && tabPane.getTabs().size() > 0) { - clearAndSelect(0); - tab.setSelected(false); - } - if (tab.isSelected()) { - tab.setSelected(false); - if (c.getFrom() == 0) { - if (tabPane.getTabs().size() > 1) { - clearSelection(); - } - } else { - selectPrevious(); + final ListChangeListener itemsContentObserver = c -> { + while (c.next()) { + for (Tab tab : c.getRemoved()) { + if (tab != null && !tabPane.getTabs().contains(tab)) { + if (getSelectedIndex() == 0 && tabPane.getTabs().size() > 0) { + clearAndSelect(0); + tab.setSelected(false); + } + if (tab.isSelected()) { + tab.setSelected(false); + if (c.getFrom() == 0) { + if (tabPane.getTabs().size() > 1) { + clearSelection(); } + } else { + selectPrevious(); } } } - if (c.wasAdded() || c.wasRemoved()) { - // The selected tab index can be out of sync with the list of tab if - // we add or remove tabs before the selected tab. - if (getSelectedIndex() != tabPane.getTabs().indexOf(getSelectedItem())) { - clearAndSelect(tabPane.getTabs().indexOf(getSelectedItem())); - } + } + if (c.wasAdded() || c.wasRemoved()) { + // The selected tab index can be out of sync with the list of tab if + // we add or remove tabs before the selected tab. + if (getSelectedIndex() != tabPane.getTabs().indexOf(getSelectedItem())) { + clearAndSelect(tabPane.getTabs().indexOf(getSelectedItem())); } } - if (getSelectedIndex() == -1 && getSelectedItem() == null && tabPane.getTabs().size() > 0) { - selectFirst(); - } else if (tabPane.getTabs().isEmpty()) { - clearSelection(); - } - } + } + if (getSelectedIndex() == -1 && getSelectedItem() == null && tabPane.getTabs().size() > 0) { + selectFirst(); + } else if (tabPane.getTabs().isEmpty()) { + clearSelection(); + } }; if (this.tabPane.getTabs() != null) { this.tabPane.getTabs().addListener(itemsContentObserver); diff --git a/modules/controls/src/main/java/javafx/scene/control/TableCell.java b/modules/controls/src/main/java/javafx/scene/control/TableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/TableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/TableCell.java @@ -119,49 +119,37 @@ * be mutated, we create this observer here, and add/remove it from the * storeTableView method. */ - private ListChangeListener selectedListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - updateSelection(); - } + private ListChangeListener selectedListener = c -> { + updateSelection(); }; // same as above, but for focus - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(Observable value) { - updateFocus(); - } + private final InvalidationListener focusedListener = value -> { + updateFocus(); }; // same as above, but for for changes to the properties on TableRow - private final InvalidationListener tableRowUpdateObserver = new InvalidationListener() { - @Override public void invalidated(Observable value) { - itemDirty = true; - requestLayout(); - } + private final InvalidationListener tableRowUpdateObserver = value -> { + itemDirty = true; + requestLayout(); }; - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(Observable value) { - updateEditing(); - } + private final InvalidationListener editingListener = value -> { + updateEditing(); }; - private ListChangeListener> visibleLeafColumnsListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - updateColumnIndex(); - } + private ListChangeListener> visibleLeafColumnsListener = c -> { + updateColumnIndex(); }; - private ListChangeListener columnStyleClassListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasRemoved()) { - getStyleClass().removeAll(c.getRemoved()); - } - - if (c.wasAdded()) { - getStyleClass().addAll(c.getAddedSubList()); - } + private ListChangeListener columnStyleClassListener = c -> { + while (c.next()) { + if (c.wasRemoved()) { + getStyleClass().removeAll(c.getRemoved()); + } + + if (c.wasAdded()) { + getStyleClass().addAll(c.getAddedSubList()); } } }; diff --git a/modules/controls/src/main/java/javafx/scene/control/TableColumn.java b/modules/controls/src/main/java/javafx/scene/control/TableColumn.java --- a/modules/controls/src/main/java/javafx/scene/control/TableColumn.java +++ b/modules/controls/src/main/java/javafx/scene/control/TableColumn.java @@ -245,21 +245,19 @@ // all children columns know that this TableColumn is their parent. getColumns().addListener(weakColumnsListener); - tableViewProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // set all children of this tableView to have the same TableView - // as this column - for (TableColumn tc : getColumns()) { - tc.setTableView(getTableView()); - } - - // This code was commented out due to RT-22391, with this enabled - // the parent column will be null, which is not desired + tableViewProperty().addListener(observable -> { + // set all children of this tableView to have the same TableView + // as this column + for (TableColumn tc : getColumns()) { + tc.setTableView(getTableView()); + } + + // This code was commented out due to RT-22391, with this enabled + // the parent column will be null, which is not desired // // set the parent of this column to also have this tableView // if (getParentColumn() != null) { // getParentColumn().setTableView(getTableView()); // } - } }); } @@ -281,43 +279,39 @@ * * **************************************************************************/ - private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = new EventHandler>() { - @Override public void handle(CellEditEvent t) { - int index = t.getTablePosition().getRow(); - List list = t.getTableView().getItems(); - if (list == null || index < 0 || index >= list.size()) return; - S rowData = list.get(index); - ObservableValue ov = getCellObservableValue(rowData); - - if (ov instanceof WritableValue) { - ((WritableValue)ov).setValue(t.getNewValue()); - } + private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = t -> { + int index = t.getTablePosition().getRow(); + List list = t.getTableView().getItems(); + if (list == null || index < 0 || index >= list.size()) return; + S rowData = list.get(index); + ObservableValue ov = getCellObservableValue(rowData); + + if (ov instanceof WritableValue) { + ((WritableValue)ov).setValue(t.getNewValue()); } }; - private ListChangeListener> columnsListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - while (c.next()) { - // update the TableColumn.tableView property - for (TableColumn tc : c.getRemoved()) { - // Fix for RT-16978. In TableColumnHeader we add before we - // remove when moving a TableColumn. This means that for - // a very brief moment the tc is duplicated, and we can prevent - // nulling out the tableview and parent column. Without this - // here, in a very special circumstance it is possible to null - // out the entire content of a column by reordering and then - // sorting another column. - if (getColumns().contains(tc)) continue; - - tc.setTableView(null); - tc.setParentColumn(null); - } - for (TableColumn tc : c.getAddedSubList()) { - tc.setTableView(getTableView()); - } + private ListChangeListener> columnsListener = c -> { + while (c.next()) { + // update the TableColumn.tableView property + for (TableColumn tc : c.getRemoved()) { + // Fix for RT-16978. In TableColumnHeader we add before we + // remove when moving a TableColumn. This means that for + // a very brief moment the tc is duplicated, and we can prevent + // nulling out the tableview and parent column. Without this + // here, in a very special circumstance it is possible to null + // out the entire content of a column by reordering and then + // sorting another column. + if (getColumns().contains(tc)) continue; - updateColumnWidths(); + tc.setTableView(null); + tc.setParentColumn(null); } + for (TableColumn tc : c.getAddedSubList()) { + tc.setTableView(getTableView()); + } + + updateColumnWidths(); } }; diff --git a/modules/controls/src/main/java/javafx/scene/control/TableColumnBase.java b/modules/controls/src/main/java/javafx/scene/control/TableColumnBase.java --- a/modules/controls/src/main/java/javafx/scene/control/TableColumnBase.java +++ b/modules/controls/src/main/java/javafx/scene/control/TableColumnBase.java @@ -114,18 +114,16 @@ * method is called, otherwise this method will defer to * {@link Collator#compare(java.lang.String, java.lang.String)}. */ - public static final Comparator DEFAULT_COMPARATOR = new Comparator() { - @Override public int compare(Object obj1, Object obj2) { - if (obj1 == null && obj2 == null) return 0; - if (obj1 == null) return -1; - if (obj2 == null) return 1; - - if (obj1 instanceof Comparable && (obj1.getClass() == obj2.getClass() || obj1.getClass().isAssignableFrom(obj2.getClass()))) { - return ((Comparable)obj1).compareTo(obj2); - } + public static final Comparator DEFAULT_COMPARATOR = (obj1, obj2) -> { + if (obj1 == null && obj2 == null) return 0; + if (obj1 == null) return -1; + if (obj2 == null) return 1; - return Collator.getInstance().compare(obj1.toString(), obj2.toString()); + if (obj1 instanceof Comparable && (obj1.getClass() == obj2.getClass() || obj1.getClass().isAssignableFrom(obj2.getClass()))) { + return ((Comparable)obj1).compareTo(obj2); } + + return Collator.getInstance().compare(obj1.toString(), obj2.toString()); }; diff --git a/modules/controls/src/main/java/javafx/scene/control/TableRow.java b/modules/controls/src/main/java/javafx/scene/control/TableRow.java --- a/modules/controls/src/main/java/javafx/scene/control/TableRow.java +++ b/modules/controls/src/main/java/javafx/scene/control/TableRow.java @@ -98,25 +98,18 @@ * be mutated, we create this observer here, and add/remove it from the * storeTableView method. */ - private ListChangeListener selectedListener = new ListChangeListener() { - @Override - public void onChanged(Change c) { - updateSelection(); - } + private ListChangeListener selectedListener = c -> { + updateSelection(); }; // Same as selectedListener, but this time for focus events - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateFocus(); - } + private final InvalidationListener focusedListener = valueModel -> { + updateFocus(); }; // same as above, but for editing events - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateEditing(); - } + private final InvalidationListener editingListener = valueModel -> { + updateEditing(); }; private final WeakListChangeListener weakSelectedListener = new WeakListChangeListener<>(selectedListener); diff --git a/modules/controls/src/main/java/javafx/scene/control/TableView.java b/modules/controls/src/main/java/javafx/scene/control/TableView.java --- a/modules/controls/src/main/java/javafx/scene/control/TableView.java +++ b/modules/controls/src/main/java/javafx/scene/control/TableView.java @@ -531,10 +531,8 @@ // watch for changes to the sort order list - and when it changes run // the sort method. - getSortOrder().addListener(new ListChangeListener>() { - @Override public void onChanged(Change> c) { - doSort(TableUtil.SortEventType.SORT_ORDER_CHANGE, c); - } + getSortOrder().addListener((ListChangeListener>) c -> { + doSort(TableUtil.SortEventType.SORT_ORDER_CHANGE, c); }); // We're watching for changes to the content width such @@ -641,43 +639,33 @@ } }; - private final InvalidationListener columnVisibleObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateVisibleLeafColumns(); - } + private final InvalidationListener columnVisibleObserver = valueModel -> { + updateVisibleLeafColumns(); }; - private final InvalidationListener columnSortableObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - Object col = ((Property)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_SORTABLE_CHANGE, col); - } + private final InvalidationListener columnSortableObserver = valueModel -> { + Object col = ((Property)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_SORTABLE_CHANGE, col); }; - private final InvalidationListener columnSortTypeObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - Object col = ((Property)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_SORT_TYPE_CHANGE, col); - } + private final InvalidationListener columnSortTypeObserver = valueModel -> { + Object col = ((Property)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_SORT_TYPE_CHANGE, col); }; - private final InvalidationListener columnComparatorObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - Object col = ((Property)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_COMPARATOR_CHANGE, col); - } + private final InvalidationListener columnComparatorObserver = valueModel -> { + Object col = ((Property)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_COMPARATOR_CHANGE, col); }; /* proxy pseudo-class state change from selectionModel's cellSelectionEnabledProperty */ - private final InvalidationListener cellSelectionModelInvalidationListener = new InvalidationListener() { - @Override public void invalidated(Observable o) { - final boolean isCellSelection = ((BooleanProperty)o).get(); - pseudoClassStateChanged(PSEUDO_CLASS_CELL_SELECTION, isCellSelection); - pseudoClassStateChanged(PSEUDO_CLASS_ROW_SELECTION, !isCellSelection); - } + private final InvalidationListener cellSelectionModelInvalidationListener = o -> { + final boolean isCellSelection = ((BooleanProperty)o).get(); + pseudoClassStateChanged(PSEUDO_CLASS_CELL_SELECTION, isCellSelection); + pseudoClassStateChanged(PSEUDO_CLASS_ROW_SELECTION, !isCellSelection); }; @@ -1911,17 +1899,9 @@ private int itemCount = 0; - private final MappingChange.Map,S> cellToItemsMap = new MappingChange.Map, S>() { - @Override public S map(TablePosition f) { - return getModelItem(f.getRow()); - } - }; + private final MappingChange.Map,S> cellToItemsMap = f -> getModelItem(f.getRow()); - private final MappingChange.Map,Integer> cellToIndicesMap = new MappingChange.Map, Integer>() { - @Override public Integer map(TablePosition f) { - return f.getRow(); - } - }; + private final MappingChange.Map,Integer> cellToIndicesMap = f -> f.getRow(); /*********************************************************************** * * @@ -1935,18 +1915,13 @@ updateItemCount(); - cellSelectionEnabledProperty().addListener(new InvalidationListener() { - @Override - public void invalidated(Observable o) { - isCellSelectionEnabled(); - clearSelection(); - } + cellSelectionEnabledProperty().addListener(o -> { + isCellSelectionEnabled(); + clearSelection(); }); - selectedCellsMap = new SelectedCellsMap<>(new ListChangeListener>() { - @Override public void onChanged(final Change> c) { - handleSelectedCellsListChangeEvent(c); - } + selectedCellsMap = new SelectedCellsMap<>(c -> { + handleSelectedCellsListChangeEvent(c); }); selectedItems = new ReadOnlyUnbackedObservableList() { diff --git a/modules/controls/src/main/java/javafx/scene/control/TextInputControl.java b/modules/controls/src/main/java/javafx/scene/control/TextInputControl.java --- a/modules/controls/src/main/java/javafx/scene/control/TextInputControl.java +++ b/modules/controls/src/main/java/javafx/scene/control/TextInputControl.java @@ -125,13 +125,11 @@ // Add a listener so that whenever the Content is changed, we notify // listeners of the text property that it is invalid. - content.addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - if (content.length() > 0) { - text.textIsNull = false; - } - text.invalidate(); + content.addListener(observable -> { + if (content.length() > 0) { + text.textIsNull = false; } + text.invalidate(); }); // Bind the length to be based on the length of the text property diff --git a/modules/controls/src/main/java/javafx/scene/control/Tooltip.java b/modules/controls/src/main/java/javafx/scene/control/Tooltip.java --- a/modules/controls/src/main/java/javafx/scene/control/Tooltip.java +++ b/modules/controls/src/main/java/javafx/scene/control/Tooltip.java @@ -789,8 +789,17 @@ }); hideTimer.getKeyFrames().add(new KeyFrame(visibleDuration)); - hideTimer.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent event) { + hideTimer.setOnFinished(event -> { + // Hide the currently visible tooltip. + assert visibleTooltip != null; + visibleTooltip.hide(); + visibleTooltip = null; + hoveredNode = null; + }); + + leftTimer.getKeyFrames().add(new KeyFrame(closeDelay)); + leftTimer.setOnFinished(event -> { + if (!hideOnExit) { // Hide the currently visible tooltip. assert visibleTooltip != null; visibleTooltip.hide(); @@ -798,19 +807,6 @@ hoveredNode = null; } }); - - leftTimer.getKeyFrames().add(new KeyFrame(closeDelay)); - leftTimer.setOnFinished(new EventHandler() { - @Override public void handle(ActionEvent event) { - if (!hideOnExit) { - // Hide the currently visible tooltip. - assert visibleTooltip != null; - visibleTooltip.hide(); - visibleTooltip = null; - hoveredNode = null; - } - } - }); } /** diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeCell.java b/modules/controls/src/main/java/javafx/scene/control/TreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeCell.java @@ -95,10 +95,8 @@ * * **************************************************************************/ - private final ListChangeListener selectedListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - updateSelection(); - } + private final ListChangeListener selectedListener = c -> { + updateSelection(); }; /** @@ -119,10 +117,8 @@ } }; - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateFocus(); - } + private final InvalidationListener focusedListener = valueModel -> { + updateFocus(); }; /** @@ -143,10 +139,8 @@ } }; - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateEditing(); - } + private final InvalidationListener editingListener = valueModel -> { + updateEditing(); }; private final InvalidationListener leafListener = new InvalidationListener() { @@ -174,10 +168,8 @@ } }; - private final InvalidationListener rootPropertyListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateItem(-1); - } + private final InvalidationListener rootPropertyListener = observable -> { + updateItem(-1); }; private final WeakListChangeListener weakSelectedListener = new WeakListChangeListener(selectedListener); diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeItem.java b/modules/controls/src/main/java/javafx/scene/control/TreeItem.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeItem.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeItem.java @@ -405,12 +405,10 @@ **************************************************************************/ // called whenever the contents of the children sequence changes - private ListChangeListener> childrenListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - expandedDescendentCountDirty = true; - while (c.next()) { - updateChildren(c.getAddedSubList(), c.getRemoved()); - } + private ListChangeListener> childrenListener = c -> { + expandedDescendentCountDirty = true; + while (c.next()) { + updateChildren(c.getAddedSubList(), c.getRemoved()); } }; diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java @@ -116,57 +116,43 @@ * be mutated, we create this observer here, and add/remove it from the * storeTableView method. */ - private ListChangeListener> selectedListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - updateSelection(); - } + private ListChangeListener> selectedListener = c -> { + updateSelection(); }; // same as above, but for focus - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(@SuppressWarnings("unused") Observable value) { - updateFocus(); - } + private final InvalidationListener focusedListener = value -> { + updateFocus(); }; // same as above, but for for changes to the properties on TableRow - private final InvalidationListener tableRowUpdateObserver = new InvalidationListener() { - @Override public void invalidated(@SuppressWarnings("unused") Observable value) { - itemDirty = true; - requestLayout(); - } + private final InvalidationListener tableRowUpdateObserver = value -> { + itemDirty = true; + requestLayout(); }; - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(@SuppressWarnings("unused") Observable value) { - updateEditing(); - } + private final InvalidationListener editingListener = value -> { + updateEditing(); }; - private ListChangeListener> visibleLeafColumnsListener = new ListChangeListener>() { - @Override public void onChanged(Change> c) { - updateColumnIndex(); - } + private ListChangeListener> visibleLeafColumnsListener = c -> { + updateColumnIndex(); }; - private ListChangeListener columnStyleClassListener = new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - if (c.wasRemoved()) { - getStyleClass().removeAll(c.getRemoved()); - } - - if (c.wasAdded()) { - getStyleClass().addAll(c.getAddedSubList()); - } + private ListChangeListener columnStyleClassListener = c -> { + while (c.next()) { + if (c.wasRemoved()) { + getStyleClass().removeAll(c.getRemoved()); + } + + if (c.wasAdded()) { + getStyleClass().addAll(c.getAddedSubList()); } } }; - private final InvalidationListener rootPropertyListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateItem(-1); - } + private final InvalidationListener rootPropertyListener = observable -> { + updateItem(-1); }; private final WeakListChangeListener> weakSelectedListener = diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeTableColumn.java b/modules/controls/src/main/java/javafx/scene/control/TreeTableColumn.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeTableColumn.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeTableColumn.java @@ -236,21 +236,19 @@ // all children columns know that this TreeTableColumn is their parent. getColumns().addListener(weakColumnsListener); - treeTableViewProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // set all children of this tableView to have the same TableView - // as this column - for (TreeTableColumn tc : getColumns()) { - tc.setTreeTableView(getTreeTableView()); - } - - // This code was commented out due to RT-22391, with this enabled - // the parent column will be null, which is not desired + treeTableViewProperty().addListener(observable -> { + // set all children of this tableView to have the same TableView + // as this column + for (TreeTableColumn tc : getColumns()) { + tc.setTreeTableView(getTreeTableView()); + } + + // This code was commented out due to RT-22391, with this enabled + // the parent column will be null, which is not desired // // set the parent of this column to also have this tableView // if (getParentColumn() != null) { // getParentColumn().setTableView(getTableView()); // } - } }); } @@ -274,15 +272,13 @@ * * **************************************************************************/ - private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent t) { - ObservableValue ov = getCellObservableValue(t.getRowValue()); - if (ov instanceof WritableValue) { - ((WritableValue)ov).setValue(t.getNewValue()); - } - } - }; + private EventHandler> DEFAULT_EDIT_COMMIT_HANDLER = + t -> { + ObservableValue ov = getCellObservableValue(t.getRowValue()); + if (ov instanceof WritableValue) { + ((WritableValue)ov).setValue(t.getNewValue()); + } + }; private ListChangeListener columnsListener = new ListChangeListener>() { @Override public void onChanged(ListChangeListener.Change> c) { diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java b/modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java @@ -94,22 +94,16 @@ * * **************************************************************************/ - private final ListChangeListener selectedListener = new ListChangeListener() { - @Override public void onChanged(ListChangeListener.Change c) { - updateSelection(); - } + private final ListChangeListener selectedListener = c -> { + updateSelection(); }; - private final InvalidationListener focusedListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateFocus(); - } + private final InvalidationListener focusedListener = valueModel -> { + updateFocus(); }; - private final InvalidationListener editingListener = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateEditing(); - } + private final InvalidationListener editingListener = valueModel -> { + updateEditing(); }; private final InvalidationListener leafListener = new InvalidationListener() { @@ -123,12 +117,10 @@ } }; - private final InvalidationListener treeItemExpandedInvalidationListener = new InvalidationListener() { - @Override public void invalidated(Observable o) { - final boolean expanded = ((BooleanProperty)o).get(); - pseudoClassStateChanged(EXPANDED_PSEUDOCLASS_STATE, expanded); - pseudoClassStateChanged(COLLAPSED_PSEUDOCLASS_STATE, !expanded); - } + private final InvalidationListener treeItemExpandedInvalidationListener = o -> { + final boolean expanded = ((BooleanProperty)o).get(); + pseudoClassStateChanged(EXPANDED_PSEUDOCLASS_STATE, expanded); + pseudoClassStateChanged(COLLAPSED_PSEUDOCLASS_STATE, !expanded); }; private final WeakListChangeListener weakSelectedListener = diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeTableView.java b/modules/controls/src/main/java/javafx/scene/control/TreeTableView.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeTableView.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeTableView.java @@ -379,24 +379,19 @@ // watch for changes to the sort order list - and when it changes run // the sort method. - getSortOrder().addListener(new ListChangeListener>() { - @Override public void onChanged(ListChangeListener.Change> c) { - doSort(TableUtil.SortEventType.SORT_ORDER_CHANGE, c); - } + getSortOrder().addListener((ListChangeListener.Change> c) -> { + doSort(TableUtil.SortEventType.SORT_ORDER_CHANGE, c); }); // We're watching for changes to the content width such // that the resize policy can be run if necessary. This comes from // TreeTableViewSkin. - getProperties().addListener(new MapChangeListener() { - @Override - public void onChanged(Change c) { - if (c.wasAdded() && TableView.SET_CONTENT_WIDTH.equals(c.getKey())) { - if (c.getValueAdded() instanceof Number) { - setContentWidth((Double) c.getValueAdded()); - } - getProperties().remove(TableView.SET_CONTENT_WIDTH); + getProperties().addListener((MapChangeListener) c -> { + if (c.wasAdded() && TableView.SET_CONTENT_WIDTH.equals(c.getKey())) { + if (c.getValueAdded() instanceof Number) { + setContentWidth((Double) c.getValueAdded()); } + getProperties().remove(TableView.SET_CONTENT_WIDTH); } }); @@ -637,24 +632,22 @@ // we use this to forward events that have bubbled up TreeItem instances // to the TreeTableViewSkin, to force it to recalculate teh item count and redraw // if necessary - private final EventHandler> rootEvent = new EventHandler>() { - @Override public void handle(TreeItem.TreeModificationEvent e) { - // this forces layoutChildren at the next pulse, and therefore - // updates the item count if necessary - EventType eventType = e.getEventType(); - boolean match = false; - while (eventType != null) { - if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { - match = true; - break; - } - eventType = eventType.getSuperType(); + private final EventHandler> rootEvent = e -> { + // this forces layoutChildren at the next pulse, and therefore + // updates the item count if necessary + EventType eventType = e.getEventType(); + boolean match = false; + while (eventType != null) { + if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { + match = true; + break; } - - if (match) { - expandedItemCountDirty = true; - requestLayout(); - } + eventType = eventType.getSuperType(); + } + + if (match) { + expandedItemCountDirty = true; + requestLayout(); } }; @@ -705,43 +698,33 @@ } }; - private final InvalidationListener columnVisibleObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - updateVisibleLeafColumns(); - } + private final InvalidationListener columnVisibleObserver = valueModel -> { + updateVisibleLeafColumns(); }; - private final InvalidationListener columnSortableObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - TreeTableColumn col = (TreeTableColumn) ((BooleanProperty)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_SORTABLE_CHANGE, col); - } + private final InvalidationListener columnSortableObserver = valueModel -> { + TreeTableColumn col = (TreeTableColumn) ((BooleanProperty)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_SORTABLE_CHANGE, col); }; - private final InvalidationListener columnSortTypeObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - TreeTableColumn col = (TreeTableColumn) ((ObjectProperty)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_SORT_TYPE_CHANGE, col); - } + private final InvalidationListener columnSortTypeObserver = valueModel -> { + TreeTableColumn col = (TreeTableColumn) ((ObjectProperty)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_SORT_TYPE_CHANGE, col); }; - private final InvalidationListener columnComparatorObserver = new InvalidationListener() { - @Override public void invalidated(Observable valueModel) { - TreeTableColumn col = (TreeTableColumn) ((SimpleObjectProperty)valueModel).getBean(); - if (! getSortOrder().contains(col)) return; - doSort(TableUtil.SortEventType.COLUMN_COMPARATOR_CHANGE, col); - } + private final InvalidationListener columnComparatorObserver = valueModel -> { + TreeTableColumn col = (TreeTableColumn) ((SimpleObjectProperty)valueModel).getBean(); + if (! getSortOrder().contains(col)) return; + doSort(TableUtil.SortEventType.COLUMN_COMPARATOR_CHANGE, col); }; /* proxy pseudo-class state change from selectionModel's cellSelectionEnabledProperty */ - private final InvalidationListener cellSelectionModelInvalidationListener = new InvalidationListener() { - @Override public void invalidated(Observable o) { - boolean isCellSelection = ((BooleanProperty)o).get(); - pseudoClassStateChanged(PSEUDO_CLASS_CELL_SELECTION, isCellSelection); - pseudoClassStateChanged(PSEUDO_CLASS_ROW_SELECTION, !isCellSelection); - } + private final InvalidationListener cellSelectionModelInvalidationListener = o -> { + boolean isCellSelection = ((BooleanProperty)o).get(); + pseudoClassStateChanged(PSEUDO_CLASS_CELL_SELECTION, isCellSelection); + pseudoClassStateChanged(PSEUDO_CLASS_ROW_SELECTION, !isCellSelection); }; private WeakEventHandler> weakRootEventListener; @@ -2082,11 +2065,9 @@ this.treeTableView = treeTableView; - cellSelectionEnabledProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable o) { - isCellSelectionEnabled(); - clearSelection(); - } + cellSelectionEnabledProperty().addListener(o -> { + isCellSelectionEnabled(); + clearSelection(); }); } @@ -2187,17 +2168,9 @@ // package for testing static class TreeTableViewArrayListSelectionModel extends TreeTableViewSelectionModel { - private final MappingChange.Map,TreeItem> cellToItemsMap = new MappingChange.Map, TreeItem>() { - @Override public TreeItem map(TreeTablePosition f) { - return getModelItem(f.getRow()); - } - }; + private final MappingChange.Map,TreeItem> cellToItemsMap = f -> getModelItem(f.getRow()); - private final MappingChange.Map,Integer> cellToIndicesMap = new MappingChange.Map, Integer>() { - @Override public Integer map(TreeTablePosition f) { - return f.getRow(); - } - }; + private final MappingChange.Map,Integer> cellToIndicesMap = f -> f.getRow(); /*********************************************************************** * * @@ -2212,11 +2185,8 @@ this.treeTableView.rootProperty().addListener(weakRootPropertyListener); updateTreeEventListener(null, treeTableView.getRoot()); - selectedCellsMap = new SelectedCellsMap<>(new ListChangeListener>() { - @Override - public void onChanged(final ListChangeListener.Change> c) { - handleSelectedCellsListChangeEvent(c); - } + selectedCellsMap = new SelectedCellsMap<>(c -> { + handleSelectedCellsListChangeEvent(c); }); selectedItems = new ReadOnlyUnbackedObservableList>() { @@ -2253,12 +2223,9 @@ } } - private ChangeListener> rootPropertyListener = new ChangeListener>() { - @Override public void changed(ObservableValue> observable, - TreeItem oldValue, TreeItem newValue) { - clearSelection(); - updateTreeEventListener(oldValue, newValue); - } + private ChangeListener> rootPropertyListener = (observable, oldValue, newValue) -> { + clearSelection(); + updateTreeEventListener(oldValue, newValue); }; private EventHandler> treeItemListener = new EventHandler>() { @@ -3082,11 +3049,8 @@ EMPTY_CELL = pos; } - private final ChangeListener> rootPropertyListener = new ChangeListener>() { - @Override - public void changed(ObservableValue> observable, TreeItem oldValue, TreeItem newValue) { - updateTreeEventListener(oldValue, newValue); - } + private final ChangeListener> rootPropertyListener = (observable, oldValue, newValue) -> { + updateTreeEventListener(oldValue, newValue); }; private final WeakChangeListener> weakRootPropertyListener = @@ -3150,10 +3114,8 @@ if(shift != 0) { final int newFocus = getFocusedIndex() + shift; if (newFocus >= 0) { - Platform.runLater(new Runnable() { - @Override public void run() { - focus(newFocus); - } + Platform.runLater(() -> { + focus(newFocus); }); } } diff --git a/modules/controls/src/main/java/javafx/scene/control/TreeView.java b/modules/controls/src/main/java/javafx/scene/control/TreeView.java --- a/modules/controls/src/main/java/javafx/scene/control/TreeView.java +++ b/modules/controls/src/main/java/javafx/scene/control/TreeView.java @@ -357,24 +357,22 @@ // we use this to forward events that have bubbled up TreeItem instances // to the TreeViewSkin, to force it to recalculate teh item count and redraw // if necessary - private final EventHandler> rootEvent = new EventHandler>() { - @Override public void handle(TreeModificationEvent e) { - // this forces layoutChildren at the next pulse, and therefore - // updates the item count if necessary - EventType eventType = e.getEventType(); - boolean match = false; - while (eventType != null) { - if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { - match = true; - break; - } - eventType = eventType.getSuperType(); + private final EventHandler> rootEvent = e -> { + // this forces layoutChildren at the next pulse, and therefore + // updates the item count if necessary + EventType eventType = e.getEventType(); + boolean match = false; + while (eventType != null) { + if (eventType.equals(TreeItem.expandedItemCountChangeEvent())) { + match = true; + break; } - - if (match) { - expandedItemCountDirty = true; - requestLayout(); - } + eventType = eventType.getSuperType(); + } + + if (match) { + expandedItemCountDirty = true; + requestLayout(); } }; @@ -1245,12 +1243,9 @@ } } - private ChangeListener> rootPropertyListener = new ChangeListener>() { - @Override public void changed(ObservableValue> observable, - TreeItem oldValue, TreeItem newValue) { - clearSelection(); - updateTreeEventListener(oldValue, newValue); - } + private ChangeListener> rootPropertyListener = (observable, oldValue, newValue) -> { + clearSelection(); + updateTreeEventListener(oldValue, newValue); }; private EventHandler> treeItemListener = new EventHandler>() { @@ -1473,11 +1468,8 @@ updateTreeEventListener(null, treeView.getRoot()); } - private final ChangeListener> rootPropertyListener = new ChangeListener>() { - @Override - public void changed(ObservableValue> observable, TreeItem oldValue, TreeItem newValue) { - updateTreeEventListener(oldValue, newValue); - } + private final ChangeListener> rootPropertyListener = (observable, oldValue, newValue) -> { + updateTreeEventListener(oldValue, newValue); }; private final WeakChangeListener> weakRootPropertyListener = @@ -1541,10 +1533,8 @@ if(shift != 0) { final int newFocus = getFocusedIndex() + shift; if (newFocus >= 0) { - Platform.runLater(new Runnable() { - @Override public void run() { - focus(newFocus); - } + Platform.runLater(() -> { + focus(newFocus); }); } } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java b/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java @@ -157,12 +157,9 @@ ChoiceBox choiceBox = new ChoiceBox(items); choiceBox.setMaxWidth(Double.MAX_VALUE); choiceBox.converterProperty().bind(converter); - choiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue ov, T oldValue, T newValue) { - if (cell.isEditing()) { - cell.commitEdit(newValue); - } + choiceBox.getSelectionModel().selectedItemProperty().addListener((ov, oldValue, newValue) -> { + if (cell.isEditing()) { + cell.commitEdit(newValue); } }); return choiceBox; @@ -244,24 +241,20 @@ // Use onAction here rather than onKeyReleased (with check for Enter), // as otherwise we encounter RT-34685 - textField.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent event) { - if (converter == null) { - throw new IllegalStateException( - "Attempting to convert text input into Object, but provided " - + "StringConverter is null. Be sure to set a StringConverter " - + "in your cell factory."); - } - cell.commitEdit(converter.fromString(textField.getText())); - event.consume(); + textField.setOnAction(event -> { + if (converter == null) { + throw new IllegalStateException( + "Attempting to convert text input into Object, but provided " + + "StringConverter is null. Be sure to set a StringConverter " + + "in your cell factory."); } + cell.commitEdit(converter.fromString(textField.getText())); + event.consume(); }); - textField.setOnKeyReleased(new EventHandler() { - @Override public void handle(KeyEvent t) { - if (t.getCode() == KeyCode.ESCAPE) { - cell.cancelEdit(); - t.consume(); - } + textField.setOnKeyReleased(t -> { + if (t.getCode() == KeyCode.ESCAPE) { + cell.cancelEdit(); + t.consume(); } }); return textField; @@ -313,11 +306,9 @@ ComboBox comboBox = new ComboBox(items); comboBox.converterProperty().bind(converter); comboBox.setMaxWidth(Double.MAX_VALUE); - comboBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, T oldValue, T newValue) { - if (cell.isEditing()) { - cell.commitEdit(newValue); - } + comboBox.getSelectionModel().selectedItemProperty().addListener((ov, oldValue, newValue) -> { + if (cell.isEditing()) { + cell.commitEdit(newValue); } }); return comboBox; diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxListCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxListCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxListCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxListCell.java @@ -116,11 +116,7 @@ public static Callback, ListCell> forListView( final Callback> getSelectedProperty, final StringConverter converter) { - return new Callback, ListCell>() { - @Override public ListCell call(ListView list) { - return new CheckBoxListCell(getSelectedProperty, converter); - } - }; + return list -> new CheckBoxListCell(getSelectedProperty, converter); } /*************************************************************************** diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTableCell.java @@ -181,11 +181,7 @@ public static Callback, TableCell> forTableColumn( final Callback> getSelectedProperty, final StringConverter converter) { - return new Callback, TableCell>() { - @Override public TableCell call(TableColumn list) { - return new CheckBoxTableCell(getSelectedProperty, converter); - } - }; + return list -> new CheckBoxTableCell(getSelectedProperty, converter); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java @@ -125,15 +125,13 @@ * all of its children (recursively). */ public static Callback, TreeCell> forTreeView() { - Callback, ObservableValue> getSelectedProperty = - new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeItem item) { - if (item instanceof CheckBoxTreeItem) { - return ((CheckBoxTreeItem)item).selectedProperty(); - } - return null; - } - }; + Callback, ObservableValue> getSelectedProperty = + item -> { + if (item instanceof CheckBoxTreeItem) { + return ((CheckBoxTreeItem)item).selectedProperty(); + } + return null; + }; return forTreeView(getSelectedProperty, CellUtils.defaultTreeItemStringConverter()); } @@ -212,11 +210,7 @@ public static Callback, TreeCell> forTreeView( final Callback, ObservableValue> getSelectedProperty, final StringConverter> converter) { - return new Callback, TreeCell>() { - @Override public TreeCell call(TreeView tree) { - return new CheckBoxTreeCell(getSelectedProperty, converter); - } - }; + return tree -> new CheckBoxTreeCell(getSelectedProperty, converter); } @@ -251,13 +245,11 @@ public CheckBoxTreeCell() { // getSelectedProperty as anonymous inner class to deal with situation // where the user is using CheckBoxTreeItem instances in their tree - this(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeItem item) { - if (item instanceof CheckBoxTreeItem) { - return ((CheckBoxTreeItem)item).selectedProperty(); - } - return null; + this(item -> { + if (item instanceof CheckBoxTreeItem) { + return ((CheckBoxTreeItem)item).selectedProperty(); } + return null; }); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeTableCell.java @@ -181,11 +181,7 @@ public static Callback, TreeTableCell> forTreeTableColumn( final Callback> getSelectedProperty, final StringConverter converter) { - return new Callback, TreeTableCell>() { - @Override public TreeTableCell call(TreeTableColumn list) { - return new CheckBoxTreeTableCell(getSelectedProperty, converter); - } - }; + return list -> new CheckBoxTreeTableCell(getSelectedProperty, converter); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxListCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxListCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxListCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxListCell.java @@ -144,11 +144,7 @@ public static Callback, ListCell> forListView( final StringConverter converter, final ObservableList items) { - return new Callback, ListCell>() { - @Override public ListCell call(ListView list) { - return new ChoiceBoxListCell(converter, items); - } - }; + return list -> new ChoiceBoxListCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTableCell.java @@ -155,11 +155,7 @@ public static Callback, TableCell> forTableColumn( final StringConverter converter, final ObservableList items) { - return new Callback, TableCell>() { - @Override public TableCell call(TableColumn list) { - return new ChoiceBoxTableCell(converter, items); - } - }; + return list -> new ChoiceBoxTableCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCell.java @@ -148,11 +148,7 @@ public static Callback, TreeCell> forTreeView( final StringConverter converter, final ObservableList items) { - return new Callback, TreeCell>() { - @Override public TreeCell call(TreeView list) { - return new ChoiceBoxTreeCell(converter, items); - } - }; + return list -> new ChoiceBoxTreeCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeTableCell.java @@ -155,11 +155,7 @@ public static Callback, TreeTableCell> forTreeTableColumn( final StringConverter converter, final ObservableList items) { - return new Callback, TreeTableCell>() { - @Override public TreeTableCell call(TreeTableColumn list) { - return new ChoiceBoxTreeTableCell(converter, items); - } - }; + return list -> new ChoiceBoxTreeTableCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxListCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxListCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxListCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxListCell.java @@ -143,11 +143,7 @@ public static Callback, ListCell> forListView( final StringConverter converter, final ObservableList items) { - return new Callback, ListCell>() { - @Override public ListCell call(ListView list) { - return new ComboBoxListCell(converter, items); - } - }; + return list -> new ComboBoxListCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTableCell.java @@ -158,11 +158,7 @@ public static Callback, TableCell> forTableColumn( final StringConverter converter, final ObservableList items) { - return new Callback, TableCell>() { - @Override public TableCell call(TableColumn list) { - return new ComboBoxTableCell(converter, items); - } - }; + return list -> new ComboBoxTableCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeCell.java @@ -150,11 +150,7 @@ public static Callback, TreeCell> forTreeView( final StringConverter converter, final ObservableList items) { - return new Callback, TreeCell>() { - @Override public TreeCell call(TreeView list) { - return new ComboBoxTreeCell(converter, items); - } - }; + return list -> new ComboBoxTreeCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeTableCell.java @@ -158,11 +158,7 @@ public static Callback, TreeTableCell> forTreeTableColumn( final StringConverter converter, final ObservableList items) { - return new Callback, TreeTableCell>() { - @Override public TreeTableCell call(TreeTableColumn list) { - return new ComboBoxTreeTableCell(converter, items); - } - }; + return list -> new ComboBoxTreeTableCell(converter, items); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/DefaultTreeCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/DefaultTreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/DefaultTreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/DefaultTreeCell.java @@ -44,10 +44,8 @@ private WeakReference> treeItemRef; - private InvalidationListener treeItemGraphicListener = new InvalidationListener() { - @Override public void invalidated(Observable observable) { - updateDisplay(getItem(), isEmpty()); - } + private InvalidationListener treeItemGraphicListener = observable -> { + updateDisplay(getItem(), isEmpty()); }; private InvalidationListener treeItemListener = new InvalidationListener() { diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTableCell.java @@ -57,11 +57,7 @@ * from 0.0 to 1.0. */ public static Callback, TableCell> forTableColumn() { - return new Callback, TableCell>() { - @Override public TableCell call(TableColumn param) { - return new ProgressBarTableCell(); - } - }; + return param -> new ProgressBarTableCell(); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/ProgressBarTreeTableCell.java @@ -58,11 +58,7 @@ * from 0.0 to 1.0. */ public static Callback, TreeTableCell> forTreeTableColumn() { - return new Callback, TreeTableCell>() { - @Override public TreeTableCell call(TreeTableColumn param) { - return new ProgressBarTreeTableCell(); - } - }; + return param -> new ProgressBarTreeTableCell(); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldListCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldListCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldListCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldListCell.java @@ -84,11 +84,7 @@ * ListView, that enables textual editing of the content. */ public static Callback, ListCell> forListView(final StringConverter converter) { - return new Callback, ListCell>() { - @Override public ListCell call(ListView list) { - return new TextFieldListCell(converter); - } - }; + return list -> new TextFieldListCell(converter); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTableCell.java @@ -84,11 +84,7 @@ */ public static Callback, TableCell> forTableColumn( final StringConverter converter) { - return new Callback, TableCell>() { - @Override public TableCell call(TableColumn list) { - return new TextFieldTableCell(converter); - } - }; + return list -> new TextFieldTableCell(converter); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeCell.java @@ -91,11 +91,7 @@ */ public static Callback, TreeCell> forTreeView( final StringConverter converter) { - return new Callback, TreeCell>() { - @Override public TreeCell call(TreeView list) { - return new TextFieldTreeCell(converter); - } - }; + return list -> new TextFieldTreeCell(converter); } diff --git a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeTableCell.java b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeTableCell.java --- a/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeTableCell.java +++ b/modules/controls/src/main/java/javafx/scene/control/cell/TextFieldTreeTableCell.java @@ -86,11 +86,7 @@ */ public static Callback, TreeTableCell> forTreeTableColumn( final StringConverter converter) { - return new Callback, TreeTableCell>() { - @Override public TreeTableCell call(TreeTableColumn list) { - return new TextFieldTreeTableCell(converter); - } - }; + return list -> new TextFieldTreeTableCell(converter); } diff --git a/modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java b/modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java --- a/modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java +++ b/modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java @@ -131,32 +131,30 @@ } private static void assertRows(final Control control, final int startRow, final int endRow, final boolean expectEmpty) { - Callback, Void> callback = new Callback, Void>() { - @Override public Void call(IndexedCell indexedCell) { - boolean hasChildrenCell = false; - for (Node n : indexedCell.getChildrenUnmodifiable()) { - if (! (n instanceof IndexedCell)) { - continue; - } - hasChildrenCell = true; - IndexedCell childCell = (IndexedCell)n; + Callback, Void> callback = indexedCell -> { + boolean hasChildrenCell = false; + for (Node n : indexedCell.getChildrenUnmodifiable()) { + if (! (n instanceof IndexedCell)) { + continue; + } + hasChildrenCell = true; + IndexedCell childCell = (IndexedCell)n; - if (expectEmpty) { - assertCellEmpty(childCell); - } else { - assertCellNotEmpty(childCell); - } + if (expectEmpty) { + assertCellEmpty(childCell); + } else { + assertCellNotEmpty(childCell); } + } - if (! hasChildrenCell) { - if (expectEmpty) { - assertCellEmpty(indexedCell); - } else { - assertCellNotEmpty(indexedCell); - } + if (! hasChildrenCell) { + if (expectEmpty) { + assertCellEmpty(indexedCell); + } else { + assertCellNotEmpty(indexedCell); } - return null; } + return null; }; assertCallback(control, startRow, endRow, callback); @@ -165,49 +163,45 @@ public static void assertCellTextEquals(final Control control, final int index, final String... expected) { if (expected == null || expected.length == 0) return; - Callback, Void> callback = new Callback, Void>() { - @Override public Void call(IndexedCell indexedCell) { - if (indexedCell.getIndex() != index) return null; + Callback, Void> callback = indexedCell -> { + if (indexedCell.getIndex() != index) return null; - if (expected.length == 1) { - assertEquals(expected[0], indexedCell.getText()); - } else { - int jump = 0; - for (int i = 0; i < expected.length; i++) { - Node childNode = indexedCell.getChildrenUnmodifiable().get(i + jump); - String text = null; - if (! (childNode instanceof IndexedCell)) { - jump++; - continue; - } + if (expected.length == 1) { + assertEquals(expected[0], indexedCell.getText()); + } else { + int jump = 0; + for (int i = 0; i < expected.length; i++) { + Node childNode = indexedCell.getChildrenUnmodifiable().get(i + jump); + String text = null; + if (! (childNode instanceof IndexedCell)) { + jump++; + continue; + } - text = ((IndexedCell) childNode).getText(); - assertEquals(expected[i], text); - } + text = ((IndexedCell) childNode).getText(); + assertEquals(expected[i], text); } - return null; } + return null; }; assertCallback(control, index, index + 1, callback); } public static void assertTableCellTextEquals(final Control control, final int row, final int column, final String expected) { - Callback, Void> callback = new Callback, Void>() { - @Override public Void call(IndexedCell indexedCell) { - if (indexedCell.getIndex() != row) return null; + Callback, Void> callback = indexedCell -> { + if (indexedCell.getIndex() != row) return null; - int _column = column; + int _column = column; - // we need to account for TreeTableView having LabeledText node in the TreeTableRow - if (indexedCell instanceof TreeTableRow) { - _column++; - } + // we need to account for TreeTableView having LabeledText node in the TreeTableRow + if (indexedCell instanceof TreeTableRow) { + _column++; + } - IndexedCell cell = (IndexedCell) indexedCell.getChildrenUnmodifiable().get(_column); - assertEquals(expected, cell.getText()); - return null; - } + IndexedCell cell = (IndexedCell) indexedCell.getChildrenUnmodifiable().get(_column); + assertEquals(expected, cell.getText()); + return null; }; assertCallback(control, row, row + 1, callback); @@ -216,22 +210,20 @@ // used by TreeView / TreeTableView to ensure the correct indentation // (although note that it has only been developed so far for TreeView) public static void assertLayoutX(final Control control, final int startRow, final int endRow, final double expectedLayoutX) { - Callback, Void> callback = new Callback, Void>() { - @Override public Void call(IndexedCell indexedCell) { - List childrenOfCell = indexedCell.getChildrenUnmodifiable(); - LabeledText labeledText = null; - for (int j = 0; j < childrenOfCell.size(); j++) { - Node child = childrenOfCell.get(j); - if (child instanceof LabeledText) { - labeledText = (LabeledText) child; - } + Callback, Void> callback = indexedCell -> { + List childrenOfCell = indexedCell.getChildrenUnmodifiable(); + LabeledText labeledText = null; + for (int j = 0; j < childrenOfCell.size(); j++) { + Node child = childrenOfCell.get(j); + if (child instanceof LabeledText) { + labeledText = (LabeledText) child; } + } - String error = "Element in row " + indexedCell.getIndex() + " has incorrect indentation. " - + "Expected " + expectedLayoutX + ", but found " + labeledText.getLayoutX(); - assertEquals(error, expectedLayoutX, labeledText.getLayoutX(), 0.0); - return null; - } + String error = "Element in row " + indexedCell.getIndex() + " has incorrect indentation. " + + "Expected " + expectedLayoutX + ", but found " + labeledText.getLayoutX(); + assertEquals(error, expectedLayoutX, labeledText.getLayoutX(), 0.0); + return null; }; assertCallback(control, startRow, endRow, callback); diff --git a/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java b/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java --- a/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java +++ b/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/ScrollPaneSkinTest.java @@ -185,10 +185,8 @@ scrollPane.setVvalue(originalValue); continueTest = false; - scrollPane.vvalueProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Object oldBounds, Object newBounds) { - continueTest = true; - } + scrollPane.vvalueProperty().addListener((observable, oldBounds, newBounds) -> { + continueTest = true; }); /* @@ -236,10 +234,8 @@ scrollPane.setHvalue(originalValue); continueTest = false; - scrollPane.hvalueProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Object oldBounds, Object newBounds) { - continueTest = true; - } + scrollPane.hvalueProperty().addListener((observable, oldBounds, newBounds) -> { + continueTest = true; }); /* @@ -272,10 +268,8 @@ scrolled = false; Rectangle rect = new Rectangle(100, 100, 100, 100); - rect.setOnScroll(new EventHandler() { - @Override public void handle(ScrollEvent event) { - scrolled = true; - } + rect.setOnScroll(event -> { + scrolled = true; }); final ScrollPane scrollPaneInner = new ScrollPane(); @@ -299,10 +293,8 @@ scrollPaneOuter.setPrefWidth(500); scrollPaneOuter.setPrefHeight(500); scrollPaneOuter.setPannable(true); - scrollPaneOuter.setOnScroll(new EventHandler() { - @Override public void handle(ScrollEvent event) { - scrolled = true; - } + scrollPaneOuter.setOnScroll(event -> { + scrolled = true; }); scrollPaneOuter.setContent(pOuter); @@ -348,10 +340,8 @@ scrollPaneInner.setPannable(true); Scene scene = new Scene(new Group(), 400, 400); - scene.setOnMouseClicked(new EventHandler() { - public void handle(MouseEvent me) { - sceneClicked = true; - } + scene.setOnMouseClicked(me -> { + sceneClicked = true; }); ((Group) scene.getRoot()).getChildren().clear(); @@ -660,25 +650,17 @@ scrollPaneInner.setPrefHeight(100); scrollPaneInner.setPannable(true); scrollPaneInner.setContent(rect); - scrollPaneInner.setOnSwipeUp(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeUp(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeDown(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeDown(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeLeft(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeLeft(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeRight(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeRight(event -> { + scrolled = true; }); Pane pOuter = new Pane(); pOuter.setPrefWidth(600); @@ -728,25 +710,17 @@ scrollPaneInner.setPrefHeight(100); scrollPaneInner.setPannable(true); scrollPaneInner.setContent(rect); - scrollPaneInner.setOnSwipeUp(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeUp(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeDown(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeDown(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeLeft(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeLeft(event -> { + scrolled = true; }); - scrollPaneInner.setOnSwipeRight(new EventHandler() { - @Override public void handle(SwipeEvent event) { - scrolled = true; - } + scrollPaneInner.setOnSwipeRight(event -> { + scrolled = true; }); Pane pOuter = new Pane(); pOuter.setPrefWidth(600); diff --git a/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/VirtualFlowTest.java b/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/VirtualFlowTest.java --- a/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/VirtualFlowTest.java +++ b/modules/controls/src/test/java/com/sun/javafx/scene/control/skin/VirtualFlowTest.java @@ -75,21 +75,17 @@ flow = new VirtualFlow(); // flow.setManaged(false); flow.setVertical(true); - flow.setCreateCell(new Callback() { - @Override public IndexedCell call(VirtualFlow p) { - return new CellStub(flow) { - @Override protected double computeMinWidth(double height) { return computePrefWidth(height); } - @Override protected double computeMaxWidth(double height) { return computePrefWidth(height); } - @Override protected double computePrefWidth(double height) { - return flow.isVertical() ? (c.getIndex() == 29 ? 200 : 100) : (c.getIndex() == 29 ? 100 : 25); - } + flow.setCreateCell(p -> new CellStub(flow) { + @Override protected double computeMinWidth(double height) { return computePrefWidth(height); } + @Override protected double computeMaxWidth(double height) { return computePrefWidth(height); } + @Override protected double computePrefWidth(double height) { + return flow.isVertical() ? (c.getIndex() == 29 ? 200 : 100) : (c.getIndex() == 29 ? 100 : 25); + } - @Override protected double computeMinHeight(double width) { return computePrefHeight(width); } - @Override protected double computeMaxHeight(double width) { return computePrefHeight(width); } - @Override protected double computePrefHeight(double width) { - return flow.isVertical() ? (c.getIndex() == 29 ? 100 : 25) : (c.getIndex() == 29 ? 200 : 100); - } - }; + @Override protected double computeMinHeight(double width) { return computePrefHeight(width); } + @Override protected double computeMaxHeight(double width) { return computePrefHeight(width); } + @Override protected double computePrefHeight(double width) { + return flow.isVertical() ? (c.getIndex() == 29 ? 100 : 25) : (c.getIndex() == 29 ? 200 : 100); } }); flow.setCellCount(100); @@ -860,11 +856,7 @@ assertFalse(flow.isNeedsLayout()); flow.getCellLength(49); // forces accum cell to be created assertNotNull("Accum cell was null", flow.accumCell); - flow.setCreateCell(new Callback() { - @Override public IndexedCell call(VirtualFlow p) { - return new CellStub(flow); - } - }); + flow.setCreateCell(p -> new CellStub(flow)); assertTrue(flow.isNeedsLayout()); assertNull("accumCell didn't get cleared", flow.accumCell); } @@ -902,21 +894,17 @@ */ flow = new VirtualFlow(); flow.setVertical(true); - flow.setCreateCell(new Callback() { - @Override public IndexedCell call(VirtualFlow p) { - return new CellStub(flow) { - @Override protected double computeMinWidth(double height) { return computePrefWidth(height); } - @Override protected double computeMaxWidth(double height) { return computePrefWidth(height); } - @Override protected double computePrefWidth(double height) { - return flow.isVertical() ? (c.getIndex() == 29 ? 200 : 100) : (c.getIndex() == 29 ? 100 : 25); - } + flow.setCreateCell(p -> new CellStub(flow) { + @Override protected double computeMinWidth(double height) { return computePrefWidth(height); } + @Override protected double computeMaxWidth(double height) { return computePrefWidth(height); } + @Override protected double computePrefWidth(double height) { + return flow.isVertical() ? (c.getIndex() == 29 ? 200 : 100) : (c.getIndex() == 29 ? 100 : 25); + } - @Override protected double computeMinHeight(double width) { return computePrefHeight(width); } - @Override protected double computeMaxHeight(double width) { return computePrefHeight(width); } - @Override protected double computePrefHeight(double width) { - return flow.isVertical() ? (c.getIndex() == 29 ? 100 : 25) : (c.getIndex() == 29 ? 200 : 100); - } - }; + @Override protected double computeMinHeight(double width) { return computePrefHeight(width); } + @Override protected double computeMaxHeight(double width) { return computePrefHeight(width); } + @Override protected double computePrefHeight(double width) { + return flow.isVertical() ? (c.getIndex() == 29 ? 100 : 25) : (c.getIndex() == 29 ? 200 : 100); } }); diff --git a/modules/controls/src/test/java/javafx/scene/chart/XYChartDataTest.java b/modules/controls/src/test/java/javafx/scene/chart/XYChartDataTest.java --- a/modules/controls/src/test/java/javafx/scene/chart/XYChartDataTest.java +++ b/modules/controls/src/test/java/javafx/scene/chart/XYChartDataTest.java @@ -71,12 +71,7 @@ series.setData(list); lineChart.getData().add(series); - FXCollections.sort(list, new Comparator>() { - @Override - public int compare(XYChart.Data o1, XYChart.Data o2) { - return Double.compare(o1.getXValue().intValue(), o2.getXValue().intValue()); - } - }); + FXCollections.sort(list, (o1, o2) -> Double.compare(o1.getXValue().intValue(), o2.getXValue().intValue())); ObservableList> data = series.getData(); // check sorted data assertEquals(1, data.get(0).getXValue()); diff --git a/modules/controls/src/test/java/javafx/scene/control/ButtonTest.java b/modules/controls/src/test/java/javafx/scene/control/ButtonTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ButtonTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ButtonTest.java @@ -211,11 +211,8 @@ @Test public void disabledDefaultButtonCannotGetInvoked_RT20929() { root.getChildren().add(btn); - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent actionEvent) { - fail(); - } + btn.setOnAction(actionEvent -> { + fail(); }); btn.setDefaultButton(true); @@ -230,11 +227,8 @@ @Test public void defaultButtonCanBeInvokeAfterRemovingFromTheScene_RT22106() { btn.setDefaultButton(true); - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent actionEvent) { - fail(); - } + btn.setOnAction(actionEvent -> { + fail(); }); root.getChildren().add(btn); show(); @@ -318,11 +312,8 @@ @Test public void cancelButtonCanBeInvokeAfterRemovingFromTheScene_RT22106() { btn.setCancelButton(true); - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent actionEvent) { - fail(); - } + btn.setOnAction(actionEvent -> { + fail(); }); root.getChildren().add(btn); show(); @@ -340,10 +331,8 @@ ContextMenu popupMenu = new ContextMenu(); MenuItem item1 = new MenuItem("_About"); popupMenu.getItems().add(item1); - popupMenu.setOnShown(new EventHandler() { - @Override public void handle(WindowEvent w) { - fail(); - } + popupMenu.setOnShown(w -> { + fail(); }); btn.setContextMenu(popupMenu); @@ -370,11 +359,9 @@ ContextMenu popupMenu = new ContextMenu(); MenuItem item1 = new MenuItem("_About"); popupMenu.getItems().add(item1); - popupMenu.setOnShown(new EventHandler() { - @Override public void handle(WindowEvent w) { - System.out.println("popup shown"); - count++; - } + popupMenu.setOnShown(w -> { + System.out.println("popup shown"); + count++; }); btn.setContextMenu(popupMenu); @@ -383,10 +370,8 @@ root.getChildren().add(btn); show(); - btn.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent event) { - fail(); - } + btn.setOnAction(event -> { + fail(); }); assertEquals(0, count); diff --git a/modules/controls/src/test/java/javafx/scene/control/CheckBoxTest.java b/modules/controls/src/test/java/javafx/scene/control/CheckBoxTest.java --- a/modules/controls/src/test/java/javafx/scene/control/CheckBoxTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/CheckBoxTest.java @@ -356,22 +356,16 @@ } @Test public void fireSelectedCheckboxResultsIn_OnAction() { - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - assertTrue(btn.isSelected()); - } + btn.setOnAction(arg0 -> { + assertTrue(btn.isSelected()); }); btn.setSelected(true); assertTrue(btn.isSelected()); } @Test public void fireIndeterminateCheckboxResultsIn_OnAction() { - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - assertTrue(btn.isIndeterminate()); - } + btn.setOnAction(arg0 -> { + assertTrue(btn.isIndeterminate()); }); btn.setIndeterminate(true); assertTrue(btn.isIndeterminate()); @@ -379,12 +373,9 @@ private int count = 0; @Test public void fireSelectedCheckboxResultsIn_OnActionCalledOnce_RT21482() { - btn.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent arg0) { - if (count++ > 0) { - assertFalse(true); - } + btn.setOnAction(arg0 -> { + if (count++ > 0) { + assertFalse(true); } }); btn.fire(); diff --git a/modules/controls/src/test/java/javafx/scene/control/CheckBoxTreeItemTest.java b/modules/controls/src/test/java/javafx/scene/control/CheckBoxTreeItemTest.java --- a/modules/controls/src/test/java/javafx/scene/control/CheckBoxTreeItemTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/CheckBoxTreeItemTest.java @@ -220,10 +220,8 @@ private int selectedEventCount = 0; @Test public void testSelectedPropertyEvent() { - treeItem.selectedProperty().addListener(new ChangeListener() { - public void changed(javafx.beans.value.ObservableValue observable, Object oldValue, Object newValue) { - selectedEventCount++; - } + treeItem.selectedProperty().addListener((observable, oldValue, newValue) -> { + selectedEventCount++; }); // no event when the value is unchanged @@ -259,10 +257,8 @@ private int indeterminateEventCount = 0; @Test public void testIndeterminatePropertyEvent() { - treeItem.indeterminateProperty().addListener(new ChangeListener() { - public void changed(javafx.beans.value.ObservableValue observable, Object oldValue, Object newValue) { - indeterminateEventCount++; - } + treeItem.indeterminateProperty().addListener((observable, oldValue, newValue) -> { + indeterminateEventCount++; }); // no event when the value is unchanged @@ -298,10 +294,8 @@ private int independentEventCount = 0; @Test public void testIndependentPropertyEvent() { - treeItem.independentProperty().addListener(new ChangeListener() { - public void changed(javafx.beans.value.ObservableValue observable, Object oldValue, Object newValue) { - independentEventCount++; - } + treeItem.independentProperty().addListener((observable, oldValue, newValue) -> { + independentEventCount++; }); // no event when the value is unchanged @@ -468,14 +462,12 @@ private int eventCount = 0; @Test public void testTreeModificationEvent_child1_onSelectionChanged() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertTrue(event.wasSelectionChanged()); - assertFalse(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertTrue(event.wasSelectionChanged()); + assertFalse(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setSelected(true); @@ -484,14 +476,12 @@ @Test public void testTreeModificationEvent_child1_onSelectionChangedAgain() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertTrue(event.wasSelectionChanged()); - assertFalse(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertTrue(event.wasSelectionChanged()); + assertFalse(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setSelected(true); @@ -508,14 +498,12 @@ @Test public void testTreeModificationEvent_child1_onSelectionChangedOnRootWhenChild1IsSelected() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertTrue(event.wasSelectionChanged()); - assertFalse(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertTrue(event.wasSelectionChanged()); + assertFalse(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setSelected(true); @@ -528,14 +516,12 @@ @Test public void testTreeModificationEvent_child1_onSelectionChangedOnRootWhenChild1IsNotSelected() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertTrue(event.wasSelectionChanged()); - assertFalse(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertTrue(event.wasSelectionChanged()); + assertFalse(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); // should increment when the root is changed and the child1 is unselected @@ -551,14 +537,12 @@ @Test public void testTreeModificationEvent_child1_onIndeterminateChanged() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertFalse(event.wasSelectionChanged()); - assertTrue(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertFalse(event.wasSelectionChanged()); + assertTrue(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setIndeterminate(true); @@ -567,14 +551,12 @@ @Test public void testTreeModificationEvent_child1_onIndeterminateChangedAgain() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertFalse(event.wasSelectionChanged()); - assertTrue(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertFalse(event.wasSelectionChanged()); + assertTrue(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setIndeterminate(true); @@ -591,14 +573,12 @@ @Test public void testTreeModificationEvent_child1_onIndeterminateChangedOnRootWhenChild1IsIndeterminate() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertFalse(event.wasSelectionChanged()); - assertTrue(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertFalse(event.wasSelectionChanged()); + assertTrue(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); child1.setIndeterminate(true); @@ -611,14 +591,12 @@ @Test public void testTreeModificationEvent_child1_onIndeterminateChangedOnRootWhenChild1IsNotIndeterminate() { assertEquals(0, eventCount); - child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler>() { - public void handle(TreeModificationEvent event) { - eventCount++; - - assertFalse(event.wasSelectionChanged()); - assertTrue(event.wasIndeterminateChanged()); - assertEquals(child1, event.getTreeItem()); - } + child1.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), event -> { + eventCount++; + + assertFalse(event.wasSelectionChanged()); + assertTrue(event.wasIndeterminateChanged()); + assertEquals(child1, event.getTreeItem()); }); root.setIndeterminate(true); diff --git a/modules/controls/src/test/java/javafx/scene/control/ChoiceBoxTest.java b/modules/controls/src/test/java/javafx/scene/control/ChoiceBoxTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ChoiceBoxTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ChoiceBoxTest.java @@ -446,11 +446,9 @@ final String[] items = {"Apple", "Orange", "Banana"}; StackPane pane = new StackPane(); pane.getChildren().add(box); - Runnable runnable = new Runnable() { - public void run() { - box.setItems(FXCollections.observableArrayList(items)); - box.getSelectionModel().setSelectedItem("Apple"); - } + Runnable runnable = () -> { + box.setItems(FXCollections.observableArrayList(items)); + box.getSelectionModel().setSelectedItem("Apple"); }; Platform.runLater(runnable); startApp(pane); diff --git a/modules/controls/src/test/java/javafx/scene/control/ColorPickerTest.java b/modules/controls/src/test/java/javafx/scene/control/ColorPickerTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ColorPickerTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ColorPickerTest.java @@ -146,9 +146,7 @@ } @Test public void ensureCanSetOnAction() { - EventHandler onAction = new EventHandler() { - @Override public void handle(ActionEvent t) { } - }; + EventHandler onAction = t -> { }; colorPicker.setOnAction(onAction); assertEquals(onAction, colorPicker.getOnAction()); } diff --git a/modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java b/modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ComboBoxTest.java @@ -655,9 +655,7 @@ } @Test public void ensureCanSetNonNullCellFactory() { - Callback, ListCell> cf = new Callback, ListCell>() { - @Override public ListCell call(ListView p) { return null; } - }; + Callback, ListCell> cf = p -> null; comboBox.setCellFactory(cf); assertEquals(cf, comboBox.getCellFactory()); } @@ -751,9 +749,7 @@ } @Test public void ensureCanSetOnAction() { - EventHandler onAction = new EventHandler() { - @Override public void handle(ActionEvent t) { } - }; + EventHandler onAction = t -> { }; comboBox.setOnAction(onAction); assertEquals(onAction, comboBox.getOnAction()); } @@ -852,10 +848,8 @@ @Test public void test_rt20103() { final TextField tf = new TextField(); - comboBox.setOnAction(new EventHandler() { - @Override public void handle(Event t) { - count++; - } + comboBox.setOnAction(t -> { + count++; }); assertTrue(count == 0); @@ -1013,11 +1007,9 @@ ComboBox comboBox = new ComboBox(); comboBox.setItems(strings); comboBox.setEditable(true); - comboBox.valueProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, String t, String t1) { - if (t == null && t1.isEmpty()) { - fail("Old value is '" + t + "' and new value is '" + t1 + "'."); - } + comboBox.valueProperty().addListener((ov, t, t1) -> { + if (t == null && t1.isEmpty()) { + fail("Old value is '" + t + "' and new value is '" + t1 + "'."); } }); @@ -1067,11 +1059,9 @@ final ComboBox comboBox = new ComboBox<>(items); comboBox.getSelectionModel().select(0); - comboBox.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Number oldIdx, Number newIdx) { - if (newIdx.intValue() != 0) { - comboBox.getSelectionModel().select(0); - } + comboBox.getSelectionModel().selectedIndexProperty().addListener((ov, oldIdx, newIdx) -> { + if (newIdx.intValue() != 0) { + comboBox.getSelectionModel().select(0); } }); @@ -1174,10 +1164,8 @@ box.getSelectionModel().selectFirst(); Button defaultButton = new Button("press"); - defaultButton.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent arg0) { - test_rt34603_count++; - } + defaultButton.setOnAction(arg0 -> { + test_rt34603_count++; }); defaultButton.setDefaultButton(true); @@ -1198,11 +1186,9 @@ final ComboBox cb = new ComboBox(); cb.setEditable(true); - cb.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent event) { - test_rt35586_count++; - assertEquals("Test", cb.getEditor().getText()); - } + cb.setOnAction(event -> { + test_rt35586_count++; + assertEquals("Test", cb.getEditor().getText()); }); new StageLoader(cb); diff --git a/modules/controls/src/test/java/javafx/scene/control/ControlChildrenTest.java b/modules/controls/src/test/java/javafx/scene/control/ControlChildrenTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ControlChildrenTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ControlChildrenTest.java @@ -51,10 +51,8 @@ t = new Tooltip(); // t.setSkin(new SkinStub(t)); changeNotificationCount = 0; - changeNotifier = new ListChangeListener() { - @Override public void onChanged(Change c) { - changeNotificationCount++; - } + changeNotifier = c1 -> { + changeNotificationCount++; }; } diff --git a/modules/controls/src/test/java/javafx/scene/control/DatePickerTest.java b/modules/controls/src/test/java/javafx/scene/control/DatePickerTest.java --- a/modules/controls/src/test/java/javafx/scene/control/DatePickerTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/DatePickerTest.java @@ -255,9 +255,7 @@ } @Test public void ensureCanSetNonNullDayCellFactory() { - Callback cf = new Callback() { - @Override public DateCell call(DatePicker p) { return null; } - }; + Callback cf = p -> null; datePicker.setDayCellFactory(cf); assertSame(cf, datePicker.getDayCellFactory()); } @@ -335,9 +333,7 @@ } @Test public void ensureCanSetOnAction() { - EventHandler onAction = new EventHandler() { - @Override public void handle(ActionEvent t) { } - }; + EventHandler onAction = t -> { }; datePicker.setOnAction(onAction); assertEquals(onAction, datePicker.getOnAction()); } diff --git a/modules/controls/src/test/java/javafx/scene/control/EventAnyTest.java b/modules/controls/src/test/java/javafx/scene/control/EventAnyTest.java --- a/modules/controls/src/test/java/javafx/scene/control/EventAnyTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/EventAnyTest.java @@ -82,10 +82,8 @@ Node n = (Node) target.newInstance(); delivered = false; - n.addEventHandler(type, new EventHandler() { - @Override public void handle(Event event) { - delivered = true; - } + n.addEventHandler(type, event1 -> { + delivered = true; }); Event.fireEvent(n, event); diff --git a/modules/controls/src/test/java/javafx/scene/control/ListCellTest.java b/modules/controls/src/test/java/javafx/scene/control/ListCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ListCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ListCellTest.java @@ -557,10 +557,8 @@ cell.updateListView(list); cell.updateIndex(2); final boolean[] called = new boolean[] { false }; - list.setOnEditStart(new EventHandler>() { - @Override public void handle(ListView.EditEvent event) { - called[0] = true; - } + list.setOnEditStart(event -> { + called[0] = true; }); cell.startEdit(); assertTrue(called[0]); @@ -588,10 +586,8 @@ cell.updateIndex(1); cell.startEdit(); final boolean[] called = new boolean[] { false }; - list.setOnEditCommit(new EventHandler>() { - @Override public void handle(ListView.EditEvent event) { - called[0] = true; - } + list.setOnEditCommit(event -> { + called[0] = true; }); cell.commitEdit("Watermelon"); assertTrue(called[0]); @@ -620,10 +616,8 @@ cell.updateIndex(1); cell.startEdit(); final boolean[] called = new boolean[] { false }; - list.setOnEditCancel(new EventHandler>() { - @Override public void handle(ListView.EditEvent event) { - called[0] = true; - } + list.setOnEditCancel(event -> { + called[0] = true; }); cell.cancelEdit(); assertTrue(called[0]); diff --git a/modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java b/modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ListViewKeyInputTest.java @@ -1105,15 +1105,11 @@ @Test public void test_rt29849() { listView.setEditable(true); - listView.setOnEditStart(new EventHandler>() { - @Override public void handle(ListView.EditEvent t) { - rt29849_start_count++; - } + listView.setOnEditStart(t -> { + rt29849_start_count++; }); - listView.setOnEditCancel(new EventHandler>() { - @Override public void handle(ListView.EditEvent t) { - rt29849_cancel_count++; - } + listView.setOnEditCancel(t -> { + rt29849_cancel_count++; }); // initially the counts should be zero @@ -1148,10 +1144,8 @@ // event when the selected items list changes (due to deselection). // It actually does always contain the right value - it just doesn't // let anyone know it! - sm.selectedItemProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - rt31577_count++; - } + sm.selectedItemProperty().addListener(observable -> { + rt31577_count++; }); assertTrue(sm.getSelectedItems().isEmpty()); @@ -1901,11 +1895,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -1932,11 +1924,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -1963,11 +1953,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -1994,11 +1982,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); diff --git a/modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java b/modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ListViewMouseInputTest.java @@ -150,11 +150,9 @@ final FocusModel fm = listView.getFocusModel(); fm.focus(-1); - fm.focusedIndexProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - rt30394_count++; - assertEquals(0, fm.getFocusedIndex()); - } + fm.focusedIndexProperty().addListener((observable, oldValue, newValue) -> { + rt30394_count++; + assertEquals(0, fm.getFocusedIndex()); }); // test pre-conditions @@ -272,11 +270,9 @@ sm.setSelectionMode(SelectionMode.MULTIPLE); sm.clearAndSelect(0); - listView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_30626_count++; - } + listView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_30626_count++; } }); diff --git a/modules/controls/src/test/java/javafx/scene/control/ListViewTest.java b/modules/controls/src/test/java/javafx/scene/control/ListViewTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ListViewTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ListViewTest.java @@ -391,10 +391,8 @@ listView.setItems(emptyModel); assertTrue(listView.getItems().isEmpty()); - sm.selectedItemProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, String oldValue, final String newValue) { - rt_18969_hitCount++; - } + sm.selectedItemProperty().addListener((observable, oldValue, newValue) -> { + rt_18969_hitCount++; }); ObservableList mod = FXCollections.observableArrayList(); @@ -585,11 +583,7 @@ final ListView listView = new ListView(items); listView.setMinHeight(100); listView.setPrefHeight(100); - listView.setCellFactory(CheckBoxListCell.forListView(new Callback>() { - public javafx.beans.value.ObservableValue call(String param) { - return new ReadOnlyBooleanWrapper(true); - } - })); + listView.setCellFactory(CheckBoxListCell.forListView(param -> new ReadOnlyBooleanWrapper(true))); // because only the first row has data, all other rows should be // empty (and not contain check boxes - we just check the first four here) @@ -747,20 +741,14 @@ private int rt_29650_commit_count = 0; private int rt_29650_cancel_count = 0; @Test public void test_rt_29650() { - listView.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_start_count++; - } + listView.setOnEditStart(t -> { + rt_29650_start_count++; }); - listView.setOnEditCommit(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_commit_count++; - } + listView.setOnEditCommit(t -> { + rt_29650_commit_count++; }); - listView.setOnEditCancel(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_cancel_count++; - } + listView.setOnEditCancel(t -> { + rt_29650_cancel_count++; }); listView.getItems().setAll("one", "two", "three", "four", "five"); @@ -831,11 +819,9 @@ textFieldListView.setItems(FXCollections.observableArrayList("A", "B", "C")); textFieldListView.setEditable(true); textFieldListView.setCellFactory(TextFieldListCell.forListView()); - textFieldListView.setOnEditCancel(new EventHandler>() { - @Override public void handle(ListView.EditEvent t) { - rt_35889_cancel_count++; - System.out.println("On Edit Cancel: " + t); - } + textFieldListView.setOnEditCancel(t -> { + rt_35889_cancel_count++; + System.out.println("On Edit Cancel: " + t); }); ListCell cell0 = (ListCell) VirtualFlowTestUtils.getCell(textFieldListView, 0); diff --git a/modules/controls/src/test/java/javafx/scene/control/MenuBarTest.java b/modules/controls/src/test/java/javafx/scene/control/MenuBarTest.java --- a/modules/controls/src/test/java/javafx/scene/control/MenuBarTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/MenuBarTest.java @@ -369,11 +369,9 @@ boolean click = true; final Boolean firstClick = new Boolean(click); - menu.setOnShowing(new EventHandler() { - @Override public void handle(Event t) { - // we should not get here when the menu is hidden - assertEquals(firstClick.booleanValue(), true); - } + menu.setOnShowing(t -> { + // we should not get here when the menu is hidden + assertEquals(firstClick.booleanValue(), true); }); MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0); diff --git a/modules/controls/src/test/java/javafx/scene/control/MenuButtonTest.java b/modules/controls/src/test/java/javafx/scene/control/MenuButtonTest.java --- a/modules/controls/src/test/java/javafx/scene/control/MenuButtonTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/MenuButtonTest.java @@ -223,11 +223,8 @@ Button other = new Button("other"); // Doesn't have to be done this way, but this more closely duplicates // the example code in the bug report. - other.setOnAction(new EventHandler(){ - @Override - public void handle(ActionEvent t) { - mb.setOpacity(.5); - } + other.setOnAction(t -> { + mb.setOpacity(.5); }); VBox vbox = new VBox(); diff --git a/modules/controls/src/test/java/javafx/scene/control/MenuTest.java b/modules/controls/src/test/java/javafx/scene/control/MenuTest.java --- a/modules/controls/src/test/java/javafx/scene/control/MenuTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/MenuTest.java @@ -370,16 +370,12 @@ Menu mi2 = new Menu("Child"); menu.getItems().add(mi2); - menu.setOnShowing(new EventHandler(){ - @Override public void handle(Event event) { - showingOccured1 = true; - } + menu.setOnShowing(event -> { + showingOccured1 = true; }); - menu.setOnShown(new EventHandler(){ - @Override public void handle(Event event) { - if (showingOccured1) { - shownOccured1 = true; - } + menu.setOnShown(event -> { + if (showingOccured1) { + shownOccured1 = true; } }); @@ -393,17 +389,13 @@ Menu mi2 = new Menu("Child"); menu.getItems().add(mi2); - menu.setOnShowing(new EventHandler(){ - @Override public void handle(Event event) { - if (shownOccured2) { - showingOccured2 = true; - } + menu.setOnShowing(event -> { + if (shownOccured2) { + showingOccured2 = true; } }); - menu.setOnShown(new EventHandler(){ - @Override public void handle(Event event) { - shownOccured2 = true; - } + menu.setOnShown(event -> { + shownOccured2 = true; }); menu.show(); @@ -512,16 +504,12 @@ Menu mi2 = new Menu("Child"); menu.getItems().add(mi2); - menu.setOnHiding(new EventHandler(){ - @Override public void handle(Event event) { - hidingOccured1 = true; - } + menu.setOnHiding(event -> { + hidingOccured1 = true; }); - menu.setOnHidden(new EventHandler(){ - @Override public void handle(Event event) { - if (hidingOccured1) { - hiddenOccured1 = true; - } + menu.setOnHidden(event -> { + if (hidingOccured1) { + hiddenOccured1 = true; } }); @@ -536,17 +524,13 @@ Menu mi2 = new Menu("Child"); menu.getItems().add(mi2); - menu.setOnHiding(new EventHandler(){ - @Override public void handle(Event event) { - if (hiddenOccured2) { - hidingOccured2 = true; - } + menu.setOnHiding(event -> { + if (hiddenOccured2) { + hidingOccured2 = true; } }); - menu.setOnHidden(new EventHandler(){ - @Override public void handle(Event event) { - hiddenOccured2 = true; - } + menu.setOnHidden(event -> { + hiddenOccured2 = true; }); menu.show(); diff --git a/modules/controls/src/test/java/javafx/scene/control/PaginationTest.java b/modules/controls/src/test/java/javafx/scene/control/PaginationTest.java --- a/modules/controls/src/test/java/javafx/scene/control/PaginationTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/PaginationTest.java @@ -121,12 +121,7 @@ } @Test public void checkPageFactoryPropertyBind() { - Callback callback = new Callback() { - @Override - public Object call(Object arg0) { - return null; - } - }; + Callback callback = arg0 -> null; ObjectProperty objPr = new SimpleObjectProperty(callback); pagination.pageFactoryProperty().bind(objPr); assertSame("page factory cannot be bound", pagination.pageFactoryProperty().getValue(), callback); @@ -159,12 +154,9 @@ @Test public void setCurrentPageIndexAndNavigateWithKeyBoard() { pagination.setPageCount(25); - pagination.setPageFactory(new Callback() { - @Override - public Node call(Integer pageIndex) { - Node n = createPage(pageIndex); - return n; - } + pagination.setPageFactory(pageIndex -> { + Node n = createPage(pageIndex); + return n; }); root.setPrefSize(400, 400); root.getChildren().add(pagination); @@ -187,12 +179,9 @@ @Ignore @Test public void setCurrentPageIndexAndNavigateWithMouse() { pagination.setPageCount(25); - pagination.setPageFactory(new Callback() { - @Override - public Node call(Integer pageIndex) { - Node n = createPage(pageIndex); - return n; - } + pagination.setPageFactory(pageIndex -> { + Node n = createPage(pageIndex); + return n; }); root.setPrefSize(400, 400); @@ -216,13 +205,10 @@ @Test public void setCurrentPageIndexAndVerifyCallback() { pagination.setPageCount(25); - pagination.setPageFactory(new Callback() { - @Override - public Node call(Integer pageIndex) { - Node n = createPage(pageIndex); - assertTrue(pageIndex == 0 || pageIndex == 4); - return n; - } + pagination.setPageFactory(pageIndex -> { + Node n = createPage(pageIndex); + assertTrue(pageIndex == 0 || pageIndex == 4); + return n; }); root.setPrefSize(400, 400); diff --git a/modules/controls/src/test/java/javafx/scene/control/SelectionModelImplTest.java b/modules/controls/src/test/java/javafx/scene/control/SelectionModelImplTest.java --- a/modules/controls/src/test/java/javafx/scene/control/SelectionModelImplTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/SelectionModelImplTest.java @@ -500,10 +500,8 @@ private int rt32618_count = 0; @Test public void test_rt32618_singleSelection() { - model.selectedItemProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Object t, Object t1) { - rt32618_count++; - } + model.selectedItemProperty().addListener((ov, t, t1) -> { + rt32618_count++; }); assertEquals(0, rt32618_count); diff --git a/modules/controls/src/test/java/javafx/scene/control/SplitPaneTest.java b/modules/controls/src/test/java/javafx/scene/control/SplitPaneTest.java --- a/modules/controls/src/test/java/javafx/scene/control/SplitPaneTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/SplitPaneTest.java @@ -1280,19 +1280,16 @@ st.setScene(new Scene(sp, 2000, 2000)); st.show(); - Runnable runnable = new Runnable() { - @Override - public void run() { - StackPane rightsp = new StackPane(); - Label right = new Label("right"); - rightsp.getChildren().add(right); - - StackPane leftsp = new StackPane(); - Label left = new Label("left"); - leftsp.getChildren().add(left); - - sp.getItems().addAll(rightsp, leftsp); - } + Runnable runnable = () -> { + StackPane rightsp = new StackPane(); + Label right = new Label("right"); + rightsp.getChildren().add(right); + + StackPane leftsp = new StackPane(); + Label left = new Label("left"); + leftsp.getChildren().add(left); + + sp.getItems().addAll(rightsp, leftsp); }; Platform.runLater(runnable); diff --git a/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java b/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java @@ -730,10 +730,8 @@ tk.firePulse(); assertTrue(tabPane.isFocused()); - tab2.setOnSelectionChanged(new EventHandler() { - @Override public void handle(Event event) { - assertEquals(0, counter++); - } + tab2.setOnSelectionChanged(event -> { + assertEquals(0, counter++); }); double xval = (tabPane.localToScene(tabPane.getLayoutBounds())).getMinX(); @@ -790,11 +788,9 @@ tabPane.getTabs().add(tab2); tabPane.getTabs().add(tab3); - tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, Tab t, Tab t1) { - assertEquals(t.getText(), "one"); - assertEquals(t1.getText(), "two"); - } + tabPane.getSelectionModel().selectedItemProperty().addListener((ov, t, t1) -> { + assertEquals(t.getText(), "one"); + assertEquals(t1.getText(), "two"); }); assertEquals("one", tabPane.getTabs().get(0).getText()); @@ -813,10 +809,8 @@ @Test public void focusTraversalShouldLookInsideEmbeddedEngines() { Button b1 = new Button("Button1"); - final ChangeListener focusListener = new ChangeListener() { - @Override public void changed(ObservableValue observable, Boolean oldVal, Boolean newVal) { - button1Focused = true; - } + final ChangeListener focusListener = (observable, oldVal, newVal) -> { + button1Focused = true; }; b1.focusedProperty().addListener(focusListener); @@ -842,12 +836,10 @@ final KeyEvent tabEvent = new KeyEvent(KeyEvent.KEY_PRESSED, "", "", KeyCodeMap.valueOf(0x09), false, false, false, false); - Platform.runLater(new Runnable() { - @Override public void run() { - tabPane.requestFocus(); - Event.fireEvent(tabPane, tabEvent); + Platform.runLater(() -> { + tabPane.requestFocus(); + Event.fireEvent(tabPane, tabEvent); - } }); assertTrue(button1Focused); diff --git a/modules/controls/src/test/java/javafx/scene/control/TabTest.java b/modules/controls/src/test/java/javafx/scene/control/TabTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TabTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TabTest.java @@ -67,10 +67,7 @@ tab = new Tab(); tabWithStr = new Tab("text"); dummyTabPane = new TabPane(); - eh = new EventHandler(){ - @Override - public void handle(Event event) { } - }; + eh = event -> { }; } diff --git a/modules/controls/src/test/java/javafx/scene/control/TableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/TableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TableCellTest.java @@ -161,11 +161,7 @@ } }; TableColumn col = new TableColumn("TEST"); - col.setCellValueFactory(new Callback() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return null; - } - }); + col.setCellValueFactory(param -> null); table.getColumns().add(col); cell.updateTableColumn(col); cell.updateTableView(table); diff --git a/modules/controls/src/test/java/javafx/scene/control/TableColumnTest.java b/modules/controls/src/test/java/javafx/scene/control/TableColumnTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TableColumnTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TableColumnTest.java @@ -381,11 +381,7 @@ } @Test public void cellValueFactoryCanBeSpecified() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().firstNameProperty(); column.setCellValueFactory(factory); assertSame(factory, column.getCellValueFactory()); @@ -393,11 +389,7 @@ } @Test public void cellValueFactoryCanBeResetToNull() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().firstNameProperty(); column.setCellValueFactory(factory); column.setCellValueFactory(null); @@ -414,11 +406,7 @@ } @Test public void cellValueFactoryCanBeBound() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().firstNameProperty(); ObjectProperty> other = new SimpleObjectProperty>(factory); column.cellValueFactoryProperty().bind(other); @@ -434,22 +422,14 @@ ********************************************************************/ @Test public void cellFactoryCanBeSpecified() { - CellFactory factory = new CellFactory() { - @Override public TableCell call(TableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; column.setCellFactory(factory); assertSame(factory, column.getCellFactory()); assertSame(factory, column.cellFactoryProperty().get()); } @Test public void cellFactoryCanBeResetToNull() { - CellFactory factory = new CellFactory() { - @Override public TableCell call(TableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; column.setCellFactory(factory); column.setCellFactory(null); assertNull(column.getCellFactory()); @@ -465,11 +445,7 @@ } @Test public void cellFactoryCanBeBound() { - CellFactory factory = new CellFactory() { - @Override public TableCell call(TableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; ObjectProperty> other = new SimpleObjectProperty>(factory); column.cellFactoryProperty().bind(other); @@ -753,22 +729,14 @@ ********************************************************************/ @Test public void comparatorCanBeSpecified() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); column.setComparator(comparator); assertSame(comparator, column.getComparator()); assertSame(comparator, column.comparatorProperty().get()); } @Test public void comparatorCanBeResetToNull() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); column.setComparator(comparator); column.setComparator(null); assertNull(column.getComparator()); @@ -784,11 +752,7 @@ } @Test public void comparatorCanBeBound() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); ObjectProperty> other = new SimpleObjectProperty>(comparator); column.comparatorProperty().bind(other); @@ -810,10 +774,8 @@ @Test public void onEditStartCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditStart(handler); assertSame(handler, column.getOnEditStart()); assertSame(handler, column.onEditStartProperty().get()); @@ -821,10 +783,8 @@ @Test public void onEditStartCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditStart(handler); column.setOnEditStart(null); assertNull(column.getOnEditStart()); @@ -841,10 +801,8 @@ @Test public void onEditStartCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditStartProperty().bind(other); @@ -866,10 +824,8 @@ @Test public void onEditCancelCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCancel(handler); assertSame(handler, column.getOnEditCancel()); assertSame(handler, column.onEditCancelProperty().get()); @@ -877,10 +833,8 @@ @Test public void onEditCancelCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCancel(handler); column.setOnEditCancel(null); assertNull(column.getOnEditCancel()); @@ -897,10 +851,8 @@ @Test public void onEditCancelCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditCancelProperty().bind(other); @@ -922,10 +874,8 @@ @Test public void onEditCommitCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCommit(handler); assertSame(handler, column.getOnEditCommit()); assertSame(handler, column.onEditCommitProperty().get()); @@ -933,10 +883,8 @@ @Test public void onEditCommitCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCommit(handler); column.setOnEditCommit(null); assertNull(column.getOnEditCommit()); @@ -953,10 +901,8 @@ @Test public void onEditCommitCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditCommitProperty().bind(other); @@ -1025,32 +971,22 @@ @Test public void getCellDataReturnsValue() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); assertEquals("Humphrey McPhee", column.getCellData(0)); } @Test public void getCellDataReturnsValue2() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); assertEquals("Humphrey McPhee", column.getCellData(table.getItems().get(0))); } @Test public void cellDataFeaturesHasTableViewSpecified() { final boolean[] passed = new boolean[] { false }; table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - passed[0] = param.getTableView() == table; - return param.getValue().firstNameProperty(); - } + column.setCellValueFactory(param -> { + passed[0] = param.getTableView() == table; + return param.getValue().firstNameProperty(); }); column.getCellData(table.getItems().get(0)); assertTrue(passed[0]); @@ -1059,11 +995,9 @@ @Test public void cellDataFeaturesHasTableColumnSpecified() { final boolean[] passed = new boolean[] { false }; table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - passed[0] = param.getTableColumn() == column; - return param.getValue().firstNameProperty(); - } + column.setCellValueFactory(param -> { + passed[0] = param.getTableColumn() == column; + return param.getValue().firstNameProperty(); }); column.getCellData(table.getItems().get(0)); assertTrue(passed[0]); @@ -1072,11 +1006,9 @@ @Test public void cellDataFeaturesHasRowItemSpecified() { final boolean[] passed = new boolean[] { false }; table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - passed[0] = param.getValue() == table.getItems().get(0); - return param.getValue().firstNameProperty(); - } + column.setCellValueFactory(param -> { + passed[0] = param.getValue() == table.getItems().get(0); + return param.getValue().firstNameProperty(); }); column.getCellData(table.getItems().get(0)); assertTrue(passed[0]); @@ -1095,11 +1027,7 @@ @Test public void defaultOnEditCommitHandlerWillSaveToWritableValue() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); TablePosition pos = new TablePosition(table, 0, column); EventType> eventType = TableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TableColumn.CellEditEvent( @@ -1110,11 +1038,7 @@ @Test public void defaultOnEditCommitHandlerWillIgnoreReadOnlyValue() { TableColumn ageColumn = new TableColumn(); table.getColumns().add(ageColumn); - ageColumn.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().ageProperty(); - } - }); + ageColumn.setCellValueFactory(param -> param.getValue().ageProperty()); TablePosition pos = new TablePosition(table, 0, ageColumn); EventType> eventType = TableColumn.editCommitEvent(); ageColumn.getOnEditCommit().handle(new TableColumn.CellEditEvent( @@ -1125,11 +1049,7 @@ @Test(expected=NullPointerException.class) public void defaultOnEditCommitHandlerDealsWithNullTableView() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); TablePosition pos = new TablePosition(table, 0, column); EventType> eventType = TableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TableColumn.CellEditEvent( @@ -1139,11 +1059,7 @@ @Test(expected=NullPointerException.class) public void defaultOnEditCommitHandlerDealsWithNullTablePosition() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); TablePosition pos = new TablePosition(table, 0, column); EventType> eventType = TableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TableColumn.CellEditEvent( @@ -1152,11 +1068,7 @@ @Test public void defaultOnEditCommitHandlerDealsWithInvalidTablePosition_indexIsNegative() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); TablePosition pos = new TablePosition(table, -1, column); EventType> eventType = TableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TableColumn.CellEditEvent( @@ -1166,11 +1078,7 @@ @Test public void defaultOnEditCommitHandlerDealsWithInvalidTablePosition_indexIsTooLarge() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return param.getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().firstNameProperty()); TablePosition pos = new TablePosition(table, 100, column); EventType> eventType = TableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TableColumn.CellEditEvent( diff --git a/modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TableViewKeyInputTest.java @@ -1840,21 +1840,13 @@ tableView.setEditable(true); col0.setEditable(true); - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper("DUMMY TEXT"); - } + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper("DUMMY TEXT")); + + col0.setOnEditStart(t -> { + rt29849_start_count++; }); - - col0.setOnEditStart(new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent t) { - rt29849_start_count++; - } - }); - col0.setOnEditCancel(new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent t) { - rt29849_cancel_count++; - } + col0.setOnEditCancel(t -> { + rt29849_cancel_count++; }); // initially the counts should be zero @@ -1891,10 +1883,8 @@ // event when the selected items list changes (due to deselection). // It actually does always contain the right value - it just doesn't // let anyone know it! - sm.selectedItemProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - rt31577_count++; - } + sm.selectedItemProperty().addListener(observable -> { + rt31577_count++; }); assertTrue(sm.getSelectedItems().isEmpty()); @@ -1981,11 +1971,7 @@ tableView.getItems().add("Row " + i); } - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); final TableSelectionModel sm = tableView.getSelectionModel(); sm.setSelectionMode(SelectionMode.SINGLE); @@ -2013,11 +1999,7 @@ tableView.getItems().add("Row " + i); } - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); final int lastIndex = 99; @@ -3330,11 +3312,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3361,11 +3341,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -3392,11 +3370,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3423,11 +3399,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -3445,11 +3419,7 @@ } TableColumn col = new TableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -3463,11 +3433,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3485,11 +3453,7 @@ } TableColumn col = new TableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -3503,11 +3467,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -3525,11 +3487,7 @@ } TableColumn col = new TableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -3543,11 +3501,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3565,11 +3521,7 @@ } TableColumn col = new TableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -3583,11 +3535,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); diff --git a/modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TableViewMouseInputTest.java @@ -171,11 +171,9 @@ final TableFocusModel fm = tableView.getFocusModel(); fm.focus(-1); - fm.focusedIndexProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - rt30394_count++; - assertEquals(0, fm.getFocusedIndex()); - } + fm.focusedIndexProperty().addListener((observable, oldValue, newValue) -> { + rt30394_count++; + assertEquals(0, fm.getFocusedIndex()); }); // test pre-conditions @@ -387,11 +385,9 @@ sm.setCellSelectionEnabled(false); sm.clearAndSelect(0); - tableView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_30626_count++; - } + tableView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_30626_count++; } }); diff --git a/modules/controls/src/test/java/javafx/scene/control/TableViewTest.java b/modules/controls/src/test/java/javafx/scene/control/TableViewTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TableViewTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TableViewTest.java @@ -333,34 +333,24 @@ // TODO test for changing column sortType out of order // TODO test comparator returns to original when sort fails / is consumed - private static final Callback, Boolean> NO_SORT_FAILED_SORT_POLICY = - new Callback, Boolean>() { - @Override public Boolean call(TableView tableView) { - return false; - } - }; + private static final Callback, Boolean> NO_SORT_FAILED_SORT_POLICY = + tableView -> false; - private static final Callback, Boolean> SORT_SUCCESS_ASCENDING_SORT_POLICY = - new Callback, Boolean>() { - @Override public Boolean call(TableView tableView) { - if (tableView.getSortOrder().isEmpty()) return true; - FXCollections.sort(tableView.getItems(), new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }); - return true; - } - }; + private static final Callback, Boolean> SORT_SUCCESS_ASCENDING_SORT_POLICY = + tableView -> { + if (tableView.getSortOrder().isEmpty()) return true; + FXCollections.sort(tableView.getItems(), new Comparator() { + @Override public int compare(String o1, String o2) { + return o1.compareTo(o2); + } + }); + return true; + }; private TableColumn initSortTestStructure() { TableColumn col = new TableColumn("column"); col.setSortType(ASCENDING); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue())); table.getColumns().add(col); table.getItems().addAll("Apple", "Orange", "Banana"); return col; @@ -369,10 +359,8 @@ @Ignore("This test is only valid if sort event consumption should revert changes") @Test public void testSortEventCanBeConsumedToStopSortOccurring_changeSortOrderList() { TableColumn col = initSortTestStructure(); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + table.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Orange", "Banana"); @@ -385,10 +373,8 @@ @Test public void testSortEventCanBeNotConsumedToAllowSortToOccur_changeSortOrderList() { TableColumn col = initSortTestStructure(); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + table.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Orange", "Banana"); @@ -403,10 +389,8 @@ TableColumn col = initSortTestStructure(); assertEquals(ASCENDING, col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + table.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Banana", "Orange"); @@ -425,10 +409,8 @@ TableColumn col = initSortTestStructure(); assertEquals(ASCENDING, col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + table.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Banana", "Orange"); @@ -446,10 +428,8 @@ col.setSortType(DESCENDING); assertEquals(DESCENDING, col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + table.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Orange", "Banana", "Apple"); @@ -466,10 +446,8 @@ col.setSortType(DESCENDING); assertEquals(DESCENDING, col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + table.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Orange", "Banana", "Apple"); @@ -487,10 +465,8 @@ col.setSortType(null); assertNull(col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + table.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Orange", "Banana"); @@ -507,10 +483,8 @@ col.setSortType(null); assertNull(col.getSortType()); table.getSortOrder().add(col); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + table.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(table.getItems(), "Apple", "Orange", "Banana"); @@ -995,11 +969,7 @@ firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName")); // set dummy comparator to lock items in place until new comparator is set - firstNameCol.setComparator(new Comparator() { - @Override public int compare(Object t, Object t1) { - return 0; - } - }); + firstNameCol.setComparator((t, t1) -> 0); table.getColumns().addAll(firstNameCol); table.getSortOrder().add(firstNameCol); @@ -1076,10 +1046,8 @@ parentColumn.getColumns().addAll(firstNameCol, lastNameCol); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - rt29330_count++; - } + table.setOnSort(event -> { + rt29330_count++; }); // test preconditions @@ -1120,10 +1088,8 @@ parentColumn.getColumns().addAll(firstNameCol, lastNameCol); table.getColumns().addAll(parentColumn); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - rt29330_count++; - } + table.setOnSort(event -> { + rt29330_count++; }); // test preconditions @@ -1332,11 +1298,7 @@ TableColumn firstNameCol = new TableColumn("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName")); - firstNameCol.setCellFactory(CheckBoxTableCell.forTableColumn(new Callback>() { - public javafx.beans.value.ObservableValue call(Integer param) { - return new ReadOnlyBooleanWrapper(true); - } - })); + firstNameCol.setCellFactory(CheckBoxTableCell.forTableColumn(param -> new ReadOnlyBooleanWrapper(true))); tableView.getColumns().add(firstNameCol); // because only the first row has data, all other rows should be @@ -1717,11 +1679,7 @@ for (int i = 0; i <= numColumns; i++) { TableColumn,Object> col = new TableColumn<>("Col" + i); final int coli = i; - col.setCellValueFactory(new Callback,Object>, ObservableValue>() { - public ObservableValue call(TableColumn.CellDataFeatures,Object> p) { - return new ReadOnlyObjectWrapper(p.getValue().get(coli)); - } - }); + col.setCellValueFactory(p -> new ReadOnlyObjectWrapper(p.getValue().get(coli))); table.getColumns().add(col); } @@ -1816,20 +1774,14 @@ Callback, TableCell> factory = TextFieldTableCell.forTableColumn(); first.setCellFactory(factory); table.getColumns().addAll(first); - first.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_start_count++; - } + first.setOnEditStart(t -> { + rt_29650_start_count++; }); - first.setOnEditCommit(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_commit_count++; - } + first.setOnEditCommit(t -> { + rt_29650_commit_count++; }); - first.setOnEditCancel(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_cancel_count++; - } + first.setOnEditCancel(t -> { + rt_29650_cancel_count++; }); new StageLoader(table); @@ -1864,10 +1816,8 @@ Callback, TableCell> factory = TextFieldTableCell.forTableColumn(); first.setCellFactory(factory); table.getColumns().addAll(first); - first.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29849_start_count++; - } + first.setOnEditStart(t -> { + rt_29849_start_count++; }); // load the table so the default cells are created @@ -2013,11 +1963,9 @@ first.setCellFactory(factory); // note that only the first name col is editable EventHandler> onEditCommit = first.getOnEditCommit(); - first.setOnEditCommit(new EventHandler>() { - @Override public void handle(TableColumn.CellEditEvent event) { - test_rt_34685_commitCount++; - onEditCommit.handle(event); - } + first.setOnEditCommit(event -> { + test_rt_34685_commitCount++; + onEditCommit.handle(event); }); table.getColumns().addAll(first); @@ -2656,10 +2604,8 @@ } private void readOnlyUnbackedObservableListSubListTest(int from, int to) { - final SelectedCellsMap selectedCellsMap = new SelectedCellsMap<>(new ListChangeListener() { - @Override public void onChanged(javafx.collections.ListChangeListener.Change c) { - // Do nothing - } + final SelectedCellsMap selectedCellsMap = new SelectedCellsMap<>(c -> { + // Do nothing }); ReadOnlyUnbackedObservableList> selectedCellsSeq = new ReadOnlyUnbackedObservableList>() { @Override public TablePosition get(int i) { diff --git a/modules/controls/src/test/java/javafx/scene/control/TextFieldTest.java b/modules/controls/src/test/java/javafx/scene/control/TextFieldTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TextFieldTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TextFieldTest.java @@ -191,11 +191,8 @@ @Test public void checkOnActionPropertyBind() { ObjectProperty> op= new SimpleObjectProperty>(); - EventHandler ev = new EventHandler() { - @Override - public void handle(ActionEvent event) { - //Nothing to do - } + EventHandler ev = event -> { + //Nothing to do }; op.setValue(ev); txtField.onActionProperty().bind(op); diff --git a/modules/controls/src/test/java/javafx/scene/control/TextInputControlTest.java b/modules/controls/src/test/java/javafx/scene/control/TextInputControlTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TextInputControlTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TextInputControlTest.java @@ -215,11 +215,8 @@ @Test public void settingTextNotifiesOfChange() { final boolean[] passed = new boolean[] { false }; - textInput.textProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, String oldValue, String newValue) { - passed[0] = true; - } + textInput.textProperty().addListener((observable, oldValue, newValue) -> { + passed[0] = true; }); textInput.setText("Apples"); assertTrue(passed[0]); @@ -303,11 +300,8 @@ @Test public void settingEditableNotifiesOfChange() { final boolean[] passed = new boolean[] { false }; - textInput.editableProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - passed[0] = true; - } + textInput.editableProperty().addListener((observable, oldValue, newValue) -> { + passed[0] = true; }); textInput.setEditable(false); assertTrue(passed[0]); @@ -373,11 +367,8 @@ @Test public void lengthChangeNotificationWhenTextIsUpdatedToNonEmptyResult() { final boolean[] passed = new boolean[] { false }; - textInput.lengthProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - passed[0] = true; - } + textInput.lengthProperty().addListener((observable, oldValue, newValue) -> { + passed[0] = true; }); textInput.setText("Hello"); assertTrue(passed[0]); @@ -389,11 +380,8 @@ @Test public void lengthChangeNotificationWhenTextIsSetToEmptyResult() { textInput.setText("Goodbye"); final boolean[] passed = new boolean[] { false }; - textInput.lengthProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - passed[0] = true; - } + textInput.lengthProperty().addListener((observable, oldValue, newValue) -> { + passed[0] = true; }); textInput.setText(""); assertTrue(passed[0]); @@ -469,10 +457,8 @@ @Test public void selectedTextChangeEvents() { final boolean[] passed = new boolean[] { false }; textInput.setText("The quick brown fox"); - textInput.selectedTextProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - passed[0] = true; - } + textInput.selectedTextProperty().addListener(observable -> { + passed[0] = true; }); textInput.selectRange(0, 3); assertTrue(passed[0]); @@ -482,10 +468,8 @@ final boolean[] passed = new boolean[] { false }; textInput.setText("The quick brown fox"); textInput.selectRange(0, 3); - textInput.selectedTextProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - passed[0] = true; - } + textInput.selectedTextProperty().addListener(observable -> { + passed[0] = true; }); textInput.selectRange(10, 180); assertTrue(passed[0]); @@ -496,10 +480,8 @@ StringProperty other = new SimpleStringProperty("There and back again"); textInput.textProperty().bind(other); textInput.selectRange(0, 5); - textInput.selectedTextProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - passed[0] = true; - } + textInput.selectedTextProperty().addListener(observable -> { + passed[0] = true; }); other.set("Cleared!"); assertTrue(passed[0]); @@ -538,10 +520,8 @@ @Test public void selectionChangeEventsHappen() { final boolean[] passed = new boolean[] { false }; - textInput.selectionProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - passed[0] = true; - } + textInput.selectionProperty().addListener(observable -> { + passed[0] = true; }); textInput.selectRange(0, 3); assertTrue(passed[0]); @@ -578,10 +558,8 @@ StringProperty other = new SimpleStringProperty("There and back again"); textInput.textProperty().bind(other); textInput.selectRange(0, 5); - textInput.selectionProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - passed[0] = true; - } + textInput.selectionProperty().addListener(observable -> { + passed[0] = true; }); other.set("Cleared!"); assertTrue(passed[0]); diff --git a/modules/controls/src/test/java/javafx/scene/control/ToggleButtonTest.java b/modules/controls/src/test/java/javafx/scene/control/ToggleButtonTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ToggleButtonTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ToggleButtonTest.java @@ -179,13 +179,9 @@ @Test public void fireAndCheckActionEventFired() { final Boolean []flag = new Boolean[1]; flag[0] = false; - toggle.addEventHandler(EventType.ROOT, new EventHandler() { - - @Override - public void handle(Event event) { - if (event != null && event instanceof ActionEvent) { - flag[0] = true; - } + toggle.addEventHandler(EventType.ROOT, event -> { + if (event != null && event instanceof ActionEvent) { + flag[0] = true; } }); toggle.fire(); diff --git a/modules/controls/src/test/java/javafx/scene/control/ToolbarTest.java b/modules/controls/src/test/java/javafx/scene/control/ToolbarTest.java --- a/modules/controls/src/test/java/javafx/scene/control/ToolbarTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/ToolbarTest.java @@ -156,13 +156,11 @@ list1.add(node2); Button b3 = new Button("button"); - b3.setOnAction(new EventHandler() { - @Override public void handle(ActionEvent e) { - try { - toolBar.getItems().setAll(list1); - } catch (Exception iae) { - fail("Duplicate items are not allowed " + iae.toString()); - } + b3.setOnAction(e -> { + try { + toolBar.getItems().setAll(list1); + } catch (Exception iae) { + fail("Duplicate items are not allowed " + iae.toString()); } }); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeCellTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeCellTest.java @@ -589,10 +589,8 @@ cell.updateTreeView(tree); cell.updateIndex(2); final boolean[] called = new boolean[] { false }; - tree.setOnEditStart(new EventHandler>() { - @Override public void handle(TreeView.EditEvent event) { - called[0] = true; - } + tree.setOnEditStart(event -> { + called[0] = true; }); cell.startEdit(); assertTrue(called[0]); @@ -620,10 +618,8 @@ cell.updateIndex(1); cell.startEdit(); final boolean[] called = new boolean[] { false }; - tree.setOnEditCommit(new EventHandler>() { - @Override public void handle(TreeView.EditEvent event) { - called[0] = true; - } + tree.setOnEditCommit(event -> { + called[0] = true; }); cell.commitEdit("Watermelon"); assertTrue(called[0]); @@ -652,10 +648,8 @@ cell.updateIndex(1); cell.startEdit(); final boolean[] called = new boolean[] { false }; - tree.setOnEditCancel(new EventHandler>() { - @Override public void handle(TreeView.EditEvent event) { - called[0] = true; - } + tree.setOnEditCancel(event -> { + called[0] = true; }); cell.cancelEdit(); assertTrue(called[0]); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeTableCellTest.java @@ -471,11 +471,7 @@ } }; TreeTableColumn col = new TreeTableColumn("TEST"); - col.setCellValueFactory(new Callback() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return null; - } - }); + col.setCellValueFactory(param -> null); tree.getColumns().add(col); cell.updateTreeTableColumn(col); cell.updateTreeTableView(tree); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeTableColumnTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeTableColumnTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeTableColumnTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeTableColumnTest.java @@ -385,11 +385,7 @@ } @Test public void cellValueFactoryCanBeSpecified() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().getValue().firstNameProperty(); column.setCellValueFactory(factory); assertSame(factory, column.getCellValueFactory()); @@ -397,11 +393,7 @@ } @Test public void cellValueFactoryCanBeResetToNull() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().getValue().firstNameProperty(); column.setCellValueFactory(factory); column.setCellValueFactory(null); @@ -418,11 +410,7 @@ } @Test public void cellValueFactoryCanBeBound() { - CellValueFactory factory = new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }; + CellValueFactory factory = param -> param.getValue().getValue().firstNameProperty(); ObjectProperty> other = new SimpleObjectProperty>(factory); column.cellValueFactoryProperty().bind(other); @@ -438,22 +426,14 @@ ********************************************************************/ @Test public void cellFactoryCanBeSpecified() { - CellFactory factory = new CellFactory() { - @Override public TreeTableCell call(TreeTableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; column.setCellFactory(factory); assertSame(factory, column.getCellFactory()); assertSame(factory, column.cellFactoryProperty().get()); } @Test public void cellFactoryCanBeResetToNull() { - CellFactory factory = new CellFactory() { - @Override public TreeTableCell call(TreeTableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; column.setCellFactory(factory); column.setCellFactory(null); assertNull(column.getCellFactory()); @@ -469,11 +449,7 @@ } @Test public void cellFactoryCanBeBound() { - CellFactory factory = new CellFactory() { - @Override public TreeTableCell call(TreeTableColumn param) { - return null; - } - }; + CellFactory factory = param -> null; ObjectProperty> other = new SimpleObjectProperty>(factory); column.cellFactoryProperty().bind(other); @@ -757,22 +733,14 @@ ********************************************************************/ @Test public void comparatorCanBeSpecified() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); column.setComparator(comparator); assertSame(comparator, column.getComparator()); assertSame(comparator, column.comparatorProperty().get()); } @Test public void comparatorCanBeResetToNull() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); column.setComparator(comparator); column.setComparator(null); assertNull(column.getComparator()); @@ -788,11 +756,7 @@ } @Test public void comparatorCanBeBound() { - Comparator comparator = new Comparator() { - @Override public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; + Comparator comparator = (o1, o2) -> o1.compareTo(o2); ObjectProperty> other = new SimpleObjectProperty>(comparator); column.comparatorProperty().bind(other); @@ -814,10 +778,8 @@ @Test public void onEditStartCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditStart(handler); assertSame(handler, column.getOnEditStart()); assertSame(handler, column.onEditStartProperty().get()); @@ -825,10 +787,8 @@ @Test public void onEditStartCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditStart(handler); column.setOnEditStart(null); assertNull(column.getOnEditStart()); @@ -845,10 +805,8 @@ @Test public void onEditStartCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditStartProperty().bind(other); @@ -870,10 +828,8 @@ @Test public void onEditCancelCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCancel(handler); assertSame(handler, column.getOnEditCancel()); assertSame(handler, column.onEditCancelProperty().get()); @@ -881,10 +837,8 @@ @Test public void onEditCancelCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCancel(handler); column.setOnEditCancel(null); assertNull(column.getOnEditCancel()); @@ -901,10 +855,8 @@ @Test public void onEditCancelCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditCancelProperty().bind(other); @@ -926,10 +878,8 @@ @Test public void onEditCommitCanBeSpecified() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCommit(handler); assertSame(handler, column.getOnEditCommit()); assertSame(handler, column.onEditCommitProperty().get()); @@ -937,10 +887,8 @@ @Test public void onEditCommitCanBeResetToNull() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; column.setOnEditCommit(handler); column.setOnEditCommit(null); assertNull(column.getOnEditCommit()); @@ -957,10 +905,8 @@ @Test public void onEditCommitCanBeBound() { EventHandler> handler = - new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent event) { - } - }; + event -> { + }; ObjectProperty>> other = new SimpleObjectProperty>>(handler); column.onEditCommitProperty().bind(other); @@ -1029,11 +975,7 @@ @Test public void getCellDataReturnsValue() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().getValue().firstNameProperty()); assertEquals("Humphrey McPhee", column.getCellData(1)); } @@ -1129,11 +1071,7 @@ @Test(expected=NullPointerException.class) public void defaultOnEditCommitHandlerDealsWithNullTableView() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().getValue().firstNameProperty()); TreeTablePosition pos = new TreeTablePosition(table, 0, column); EventType> eventType = TreeTableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TreeTableColumn.CellEditEvent( @@ -1143,11 +1081,7 @@ @Test(expected=NullPointerException.class) public void defaultOnEditCommitHandlerDealsWithNullTablePosition() { table.getColumns().add(column); - column.setCellValueFactory(new CellValueFactory() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().getValue().firstNameProperty(); - } - }); + column.setCellValueFactory(param -> param.getValue().getValue().firstNameProperty()); TreeTablePosition pos = new TreeTablePosition(table, 0, column); EventType> eventType = TreeTableColumn.editCommitEvent(); column.getOnEditCommit().handle(new TreeTableColumn.CellEditEvent( diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewKeyInputTest.java @@ -2358,21 +2358,13 @@ tableView.setEditable(true); col0.setEditable(true); - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper("DUMMY TEXT"); - } + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper("DUMMY TEXT")); + + col0.setOnEditStart(t -> { + rt29849_start_count++; }); - - col0.setOnEditStart(new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent t) { - rt29849_start_count++; - } - }); - col0.setOnEditCancel(new EventHandler>() { - @Override public void handle(TreeTableColumn.CellEditEvent t) { - rt29849_cancel_count++; - } + col0.setOnEditCancel(t -> { + rt29849_cancel_count++; }); // initially the counts should be zero @@ -2408,10 +2400,8 @@ // event when the selected items list changes (due to deselection). // It actually does always contain the right value - it just doesn't // let anyone know it! - sm.selectedItemProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - rt31577_count++; - } + sm.selectedItemProperty().addListener(observable -> { + rt31577_count++; }); assertTrue(sm.getSelectedItems().isEmpty()); @@ -2495,11 +2485,7 @@ root.getChildren().add(new TreeItem("Row " + i)); } - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); final TableSelectionModel sm = tableView.getSelectionModel(); sm.setSelectionMode(SelectionMode.SINGLE); @@ -2528,11 +2514,7 @@ root.getChildren().add(new TreeItem("Row " + i)); } - col0.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col0.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); final int lastIndex = 99; @@ -2932,11 +2914,9 @@ sm.setSelectionMode(SelectionMode.SINGLE); sm.clearAndSelect(0); - tableView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_33559_count++; - } + tableView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_33559_count++; } }); @@ -3854,11 +3834,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3886,11 +3864,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -3918,11 +3894,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -3950,11 +3924,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -3973,11 +3945,7 @@ } TreeTableColumn col = new TreeTableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -3991,11 +3959,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -4014,11 +3980,7 @@ } TreeTableColumn col = new TreeTableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -4032,11 +3994,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -4055,11 +4015,7 @@ } TreeTableColumn col = new TreeTableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -4073,11 +4029,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -4096,11 +4050,7 @@ } TreeTableColumn col = new TreeTableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); tableView.getColumns().setAll(col); new StageLoader(tableView); @@ -4114,11 +4064,9 @@ assertTrue(fm.isFocused(5, col)); assertTrue(sm.isSelected(5, col)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java @@ -243,11 +243,9 @@ final TableFocusModel fm = tableView.getFocusModel(); fm.focus(-1); - fm.focusedIndexProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - rt30394_count++; - assertEquals(0, fm.getFocusedIndex()); - } + fm.focusedIndexProperty().addListener((observable, oldValue, newValue) -> { + rt30394_count++; + assertEquals(0, fm.getFocusedIndex()); }); // test pre-conditions @@ -531,11 +529,9 @@ sm.setSelectionMode(SelectionMode.MULTIPLE); sm.clearAndSelect(0); - tableView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_30626_count++; - } + tableView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_30626_count++; } }); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java @@ -299,34 +299,24 @@ // TODO test for sort policies returning null // TODO test for changing column sortType out of order - private static final Callback, Boolean> NO_SORT_FAILED_SORT_POLICY = - new Callback, Boolean>() { - @Override public Boolean call(TreeTableView treeTableView) { - return false; - } - }; + private static final Callback, Boolean> NO_SORT_FAILED_SORT_POLICY = + treeTableView1 -> false; - private static final Callback, Boolean> SORT_SUCCESS_ASCENDING_SORT_POLICY = - new Callback, Boolean>() { - @Override public Boolean call(TreeTableView treeTableView) { - if (treeTableView.getSortOrder().isEmpty()) return true; - FXCollections.sort(treeTableView.getRoot().getChildren(), new Comparator>() { - @Override public int compare(TreeItem o1, TreeItem o2) { - return o1.getValue().compareTo(o2.getValue()); - } - }); - return true; - } - }; + private static final Callback, Boolean> SORT_SUCCESS_ASCENDING_SORT_POLICY = + treeTableView1 -> { + if (treeTableView1.getSortOrder().isEmpty()) return true; + FXCollections.sort(treeTableView1.getRoot().getChildren(), new Comparator>() { + @Override public int compare(TreeItem o1, TreeItem o2) { + return o1.getValue().compareTo(o2.getValue()); + } + }); + return true; + }; private TreeTableColumn initSortTestStructure() { TreeTableColumn col = new TreeTableColumn("column"); col.setSortType(ASCENDING); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue().getValue())); treeTableView.getColumns().add(col); TreeItem newRoot = new TreeItem("root"); @@ -344,10 +334,8 @@ @Ignore("This test is only valid if sort event consumption should revert changes") @Test public void testSortEventCanBeConsumedToStopSortOccurring_changeSortOrderList() { TreeTableColumn col = initSortTestStructure(); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + treeTableView.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, orange, banana); @@ -360,10 +348,8 @@ @Test public void testSortEventCanBeNotConsumedToAllowSortToOccur_changeSortOrderList() { TreeTableColumn col = initSortTestStructure(); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + treeTableView.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, orange, banana); @@ -378,10 +364,8 @@ TreeTableColumn col = initSortTestStructure(); assertEquals(ASCENDING, col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + treeTableView.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, banana, orange); @@ -400,10 +384,8 @@ TreeTableColumn col = initSortTestStructure(); assertEquals(ASCENDING, col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + treeTableView.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, banana, orange); @@ -421,10 +403,8 @@ col.setSortType(DESCENDING); assertEquals(DESCENDING, col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + treeTableView.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), orange, banana, apple); @@ -441,10 +421,8 @@ col.setSortType(DESCENDING); assertEquals(DESCENDING, col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + treeTableView.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), orange, banana, apple); @@ -462,10 +440,8 @@ col.setSortType(null); assertNull(col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - event.consume(); - } + treeTableView.setOnSort(event -> { + event.consume(); }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, orange, banana); @@ -482,10 +458,8 @@ col.setSortType(null); assertNull(col.getSortType()); treeTableView.getSortOrder().add(col); - treeTableView.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - // do not consume here - this allows the sort to happen - } + treeTableView.setOnSort(event -> { + // do not consume here - this allows the sort to happen }); VirtualFlowTestUtils.assertListContainsItemsInOrder(treeTableView.getRoot().getChildren(), apple, orange, banana); @@ -1340,10 +1314,8 @@ @Override public Object call(Object p) { TreeTableRow treeCell = new TreeTableRow() { { - disclosureNodeProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Object t, Object t1) { - setDisclosureNode(null); - } + disclosureNodeProperty().addListener((ov, t, t1) -> { + setDisclosureNode(null); }); } @@ -1503,11 +1475,7 @@ firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory("firstName")); // set dummy comparator to lock items in place until new comparator is set - firstNameCol.setComparator(new Comparator() { - @Override public int compare(Object t, Object t1) { - return 0; - } - }); + firstNameCol.setComparator((t, t1) -> 0); table.getColumns().addAll(firstNameCol); table.getSortOrder().add(firstNameCol); @@ -1594,10 +1562,8 @@ parentColumn.getColumns().addAll(firstNameCol, lastNameCol); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - rt29330_count++; - } + table.setOnSort(event -> { + rt29330_count++; }); // test preconditions @@ -1645,10 +1611,8 @@ parentColumn.getColumns().addAll(firstNameCol, lastNameCol); table.getColumns().addAll(parentColumn); - table.setOnSort(new EventHandler>>() { - @Override public void handle(SortEvent> event) { - rt29330_count++; - } + table.setOnSort(event -> { + rt29330_count++; }); // test preconditions @@ -1887,12 +1851,7 @@ treeTableView.getRoot().setExpanded(true); TreeTableColumn column = new TreeTableColumn("Items' name"); - column.setCellValueFactory(new Callback, ObservableValue>() { - @Override - public ObservableValue call(final TreeTableColumn.CellDataFeatures p) { - return new ReadOnlyStringWrapper(p.getValue().getValue().getData()); - } - }); + column.setCellValueFactory(p -> new ReadOnlyStringWrapper(p.getValue().getValue().getData())); treeTableView.getColumns().add(column); // show treeTableView @@ -2076,11 +2035,7 @@ TreeTableColumn firstNameCol = new TreeTableColumn("First Name"); firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory("firstName")); - firstNameCol.setCellFactory(CheckBoxTreeTableCell.forTreeTableColumn(new Callback>() { - public javafx.beans.value.ObservableValue call(Integer param) { - return new ReadOnlyBooleanWrapper(true); - } - })); + firstNameCol.setCellFactory(CheckBoxTreeTableCell.forTreeTableColumn(param -> new ReadOnlyBooleanWrapper(true))); tableView.getColumns().add(firstNameCol); // because only the first row has data, all other rows should be @@ -2098,11 +2053,7 @@ treeTableView.setEditable(true); TreeTableColumn firstNameCol = new TreeTableColumn("First Name"); - firstNameCol.setCellValueFactory(new Callback() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper("TEST"); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper("TEST")); firstNameCol.setCellFactory(TextFieldTreeTableCell.forTreeTableColumn()); firstNameCol.setEditable(true); @@ -2128,11 +2079,7 @@ installChildren(); TreeTableColumn firstNameCol = new TreeTableColumn<>("First Name"); - firstNameCol.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); treeTableView.getColumns().add(firstNameCol); @@ -2147,11 +2094,7 @@ installChildren(); TreeTableColumn firstNameCol = new TreeTableColumn<>("First Name"); - firstNameCol.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); treeTableView.getColumns().add(firstNameCol); @@ -2174,11 +2117,7 @@ installChildren(); TreeTableColumn firstNameCol = new TreeTableColumn<>("First Name"); - firstNameCol.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); treeTableView.getColumns().add(firstNameCol); @@ -2224,11 +2163,7 @@ installChildren(); TreeTableColumn firstNameCol = new TreeTableColumn<>("First Name"); - firstNameCol.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); treeTableView.getColumns().add(firstNameCol); firstNameCol.setCellFactory(new Callback, TreeTableCell>() { @@ -2277,11 +2212,7 @@ installChildren(); TreeTableColumn firstNameCol = new TreeTableColumn<>("First Name"); - firstNameCol.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper(param.getValue().getValue()); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().getValue())); treeTableView.getColumns().add(firstNameCol); treeTableView.setRowFactory(new Callback, TreeTableRow>() { @@ -2330,11 +2261,7 @@ treeTableView.setEditable(true); TreeTableColumn firstNameCol = new TreeTableColumn("First Name"); - firstNameCol.setCellValueFactory(new Callback() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper("TEST"); - } - }); + firstNameCol.setCellValueFactory(param -> new ReadOnlyStringWrapper("TEST")); firstNameCol.setCellFactory(TextFieldTreeTableCell.forTreeTableColumn()); firstNameCol.setEditable(true); @@ -2364,11 +2291,7 @@ // final TableSelectionModel sm = t.getSelectionModel(); TreeTableColumn col = new TreeTableColumn("column"); col.setSortType(ASCENDING); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue().getValue())); treeTableView.getColumns().add(col); // test pre-conditions @@ -2433,11 +2356,7 @@ TreeTableColumn col = new TreeTableColumn("column"); col.setSortType(ASCENDING); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue().getValue())); treeTableView.getColumns().add(col); col.setCellFactory(new Callback, TreeTableCell>() { @@ -2477,11 +2396,7 @@ TreeTableColumn col = new TreeTableColumn("column"); col.setSortType(ASCENDING); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue().getValue())); treeTableView.getColumns().add(col); treeTableView.setRowFactory(new Callback, TreeTableRow>() { @@ -2522,11 +2437,7 @@ treeTableView.setEditable(true); TreeTableColumn col = new TreeTableColumn("column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue().getValue())); treeTableView.getColumns().add(col); //Set cell factory for cells that allow editing @@ -2559,11 +2470,7 @@ treeTableView.setColumnResizePolicy(TreeTableView.CONSTRAINED_RESIZE_POLICY); TreeTableColumn col = new TreeTableColumn<>("column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper<>(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getValue())); treeTableView.getColumns().add(col); new StageLoader(treeTableView); @@ -2581,27 +2488,17 @@ TreeTableColumn col = new TreeTableColumn<>("column"); Callback, TreeTableCell> factory = TextFieldTreeTableCell.forTreeTableColumn(); col.setCellFactory(factory); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper<>(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getValue())); treeTableView.getColumns().add(col); - col.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_start_count++; - } + col.setOnEditStart(t -> { + rt_29650_start_count++; }); - col.setOnEditCommit(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_commit_count++; - } + col.setOnEditCommit(t -> { + rt_29650_commit_count++; }); - col.setOnEditCancel(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_cancel_count++; - } + col.setOnEditCancel(t -> { + rt_29650_cancel_count++; }); new StageLoader(treeTableView); @@ -2630,17 +2527,11 @@ TreeTableColumn col = new TreeTableColumn<>("column"); col.setEditable(true); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper<>(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getValue())); treeTableView.getColumns().add(col); - col.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29849_start_count++; - } + col.setOnEditStart(t -> { + rt_29849_start_count++; }); // load the table so the default cells are created @@ -2670,11 +2561,7 @@ // add in a column and some data TreeTableColumn col = new TreeTableColumn<>("column"); col.setEditable(true); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return new ReadOnlyObjectWrapper<>(param.getValue().getValue()); - } - }); + col.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getValue())); treeTableView.getColumns().add(col); installChildren(); @@ -3061,12 +2948,9 @@ nameColumn.setCellValueFactory(new TreeItemPropertyValueFactory("name")); view.getColumns().add(nameColumn); - view.expandedItemCountProperty().addListener(new ChangeListener() { - @Override public void changed( - ObservableValue observableValue, - Number oldCount, Number newCount) { + view.expandedItemCountProperty().addListener((observableValue, oldCount, newCount) -> { - // DEBUG OUTPUT + // DEBUG OUTPUT // System.out.println("new expanded item count: " + newCount.intValue()); // for (int i = 0; i < newCount.intValue(); i++) { // TreeItem item = view.getTreeItem(i); @@ -3075,30 +2959,29 @@ // } // System.out.println("------------------------------------------"); - if (test_rt_35213_eventCount == 0) { - assertEquals(4, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Group 3", view.getTreeItem(3).getValue()); - } else if (test_rt_35213_eventCount == 1) { - assertEquals(6, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Employee 1", view.getTreeItem(3).getValue()); - assertEquals("Employee 2", view.getTreeItem(4).getValue()); - assertEquals("Group 3", view.getTreeItem(5).getValue()); - } else if (test_rt_35213_eventCount == 2) { - assertEquals(4, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Group 3", view.getTreeItem(3).getValue()); - } + if (test_rt_35213_eventCount == 0) { + assertEquals(4, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Group 3", view.getTreeItem(3).getValue()); + } else if (test_rt_35213_eventCount == 1) { + assertEquals(6, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Employee 1", view.getTreeItem(3).getValue()); + assertEquals("Employee 2", view.getTreeItem(4).getValue()); + assertEquals("Group 3", view.getTreeItem(5).getValue()); + } else if (test_rt_35213_eventCount == 2) { + assertEquals(4, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Group 3", view.getTreeItem(3).getValue()); + } - test_rt_35213_eventCount++; - } + test_rt_35213_eventCount++; }); new StageLoader(view); @@ -3263,11 +3146,7 @@ final TreeTableView treeView = new TreeTableView<>(); TreeTableColumn col = new TreeTableColumn<>("Column"); - col.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TreeTableColumn.CellDataFeatures param) { - return param.getValue().valueProperty(); - } - }); + col.setCellValueFactory(param -> param.getValue().valueProperty()); treeView.getColumns().add(col); treeView.setRoot(root); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeViewKeyInputTest.java @@ -1311,15 +1311,11 @@ @Test public void test_rt29849() { treeView.setEditable(true); - treeView.setOnEditStart(new EventHandler>() { - @Override public void handle(TreeView.EditEvent event) { - rt29849_start_count++; - } + treeView.setOnEditStart(event -> { + rt29849_start_count++; }); - treeView.setOnEditCancel(new EventHandler>() { - @Override public void handle(TreeView.EditEvent event) { - rt29849_cancel_count++; - } + treeView.setOnEditCancel(event -> { + rt29849_cancel_count++; }); // initially the counts should be zero @@ -1355,10 +1351,8 @@ // event when the selected items list changes (due to deselection). // It actually does always contain the right value - it just doesn't // let anyone know it! - sm.selectedItemProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - rt31577_count++; - } + sm.selectedItemProperty().addListener(observable -> { + rt31577_count++; }); assertTrue(sm.getSelectedItems().isEmpty()); @@ -1519,31 +1513,22 @@ treeView.setRoot(newRoot); treeView.setEditable(true); - treeView.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt32783_count_start++; - } + treeView.setOnEditStart(t -> { + rt32783_count_start++; }); - treeView.setOnEditCommit(new EventHandler() { - @Override public void handle(Event t) { - rt32783_count_commit++; - } + treeView.setOnEditCommit(t -> { + rt32783_count_commit++; }); - treeView.setOnEditCancel(new EventHandler() { - @Override public void handle(Event t) { - rt32783_count_cancel++; - } + treeView.setOnEditCancel(t -> { + rt32783_count_cancel++; }); - treeView.editingItemProperty().addListener(new InvalidationListener() { - @Override - public void invalidated(Observable observable) { - assertNotNull(treeView.getEditingItem()); - System.out.println("editing item: " + treeView.getEditingItem()); - rt32783_count++; - } + treeView.editingItemProperty().addListener(observable -> { + assertNotNull(treeView.getEditingItem()); + System.out.println("editing item: " + treeView.getEditingItem()); + rt32783_count++; }); // start test @@ -1864,11 +1849,9 @@ sm.setSelectionMode(SelectionMode.SINGLE); sm.clearAndSelect(0); - treeView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_33559_count++; - } + treeView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_33559_count++; } }); @@ -2132,11 +2115,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -2164,11 +2145,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); @@ -2196,11 +2175,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP, KeyModifier.SHIFT); @@ -2228,11 +2205,9 @@ assertTrue(fm.isFocused(5)); assertTrue(sm.isSelected(5)); - sm.selectedIndexProperty().addListener(new InvalidationListener() { - @Override public void invalidated(Observable observable) { - // we expect only one selected index change event, from 5 to 4 - assertEquals(4, sm.getSelectedIndex()); - } + sm.selectedIndexProperty().addListener(observable -> { + // we expect only one selected index change event, from 5 to 4 + assertEquals(4, sm.getSelectedIndex()); }); keyboard.doKeyPress(KeyCode.UP); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeViewMouseInputTest.java @@ -215,11 +215,9 @@ final FocusModel fm = treeView.getFocusModel(); fm.focus(-1); - fm.focusedIndexProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - rt30394_count++; - assertEquals(0, fm.getFocusedIndex()); - } + fm.focusedIndexProperty().addListener((observable, oldValue, newValue) -> { + rt30394_count++; + assertEquals(0, fm.getFocusedIndex()); }); // test pre-conditions @@ -372,11 +370,9 @@ sm.setSelectionMode(SelectionMode.MULTIPLE); sm.clearAndSelect(0); - treeView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - rt_30626_count++; - } + treeView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + rt_30626_count++; } }); diff --git a/modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java b/modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java --- a/modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java @@ -664,10 +664,8 @@ @Override public Object call(Object p) { TreeCell treeCell = new TreeCell() { { - disclosureNodeProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue ov, Object t, Object t1) { - setDisclosureNode(null); - } + disclosureNodeProperty().addListener((ov, t, t1) -> { + setDisclosureNode(null); }); } @@ -757,11 +755,7 @@ } // run sort - Collections.sort(rootNode.getChildren(), new Comparator>() { - @Override public int compare(TreeItem o1, TreeItem o2) { - return o1.getValue().compareTo(o2.getValue()); - } - }); + Collections.sort(rootNode.getChildren(), (o1, o2) -> o1.getValue().compareTo(o2.getValue())); // ensure the same indentation exists after the sort (which is where the // bug is - it drops down to 21.0px indentation when it shouldn't). @@ -1024,11 +1018,7 @@ treeView.setPrefHeight(100); treeView.setCellFactory( CheckBoxTreeCell.forTreeView( - new Callback, ObservableValue>() { - public javafx.beans.value.ObservableValue call(TreeItem param) { - return new ReadOnlyBooleanWrapper(true); - } - })); + param -> new ReadOnlyBooleanWrapper(true))); // because only the first row has data, all other rows should be // empty (and not contain check boxes - we just check the first four here) @@ -1162,20 +1152,14 @@ private int rt_29650_cancel_count = 0; @Test public void test_rt_29650() { installChildren(); - treeView.setOnEditStart(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_start_count++; - } + treeView.setOnEditStart(t -> { + rt_29650_start_count++; }); - treeView.setOnEditCommit(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_commit_count++; - } + treeView.setOnEditCommit(t -> { + rt_29650_commit_count++; }); - treeView.setOnEditCancel(new EventHandler() { - @Override public void handle(Event t) { - rt_29650_cancel_count++; - } + treeView.setOnEditCancel(t -> { + rt_29650_cancel_count++; }); treeView.setEditable(true); @@ -1205,12 +1189,10 @@ sm.setSelectionMode(SelectionMode.MULTIPLE); sm.clearAndSelect(0); - treeView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener() { - @Override public void onChanged(Change c) { - while (c.next()) { - System.out.println(c); - rt_33559_count++; - } + treeView.getSelectionModel().getSelectedItems().addListener((ListChangeListener) c -> { + while (c.next()) { + System.out.println(c); + rt_33559_count++; } }); @@ -1458,12 +1440,9 @@ group2.getChildren().addAll(employee1, employee2); - view.expandedItemCountProperty().addListener(new ChangeListener() { - @Override public void changed( - ObservableValue observableValue, - Number oldCount, Number newCount) { + view.expandedItemCountProperty().addListener((observableValue, oldCount, newCount) -> { - // DEBUG OUTPUT + // DEBUG OUTPUT // System.out.println("new expanded item count: " + newCount.intValue()); // for (int i = 0; i < newCount.intValue(); i++) { // TreeItem item = view.getTreeItem(i); @@ -1472,30 +1451,29 @@ // } // System.out.println("------------------------------------------"); - if (test_rt_35213_eventCount == 0) { - assertEquals(4, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Group 3", view.getTreeItem(3).getValue()); - } else if (test_rt_35213_eventCount == 1) { - assertEquals(6, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Employee 1", view.getTreeItem(3).getValue()); - assertEquals("Employee 2", view.getTreeItem(4).getValue()); - assertEquals("Group 3", view.getTreeItem(5).getValue()); - } else if (test_rt_35213_eventCount == 2) { - assertEquals(4, newCount); - assertEquals("Boss", view.getTreeItem(0).getValue()); - assertEquals("Group 1", view.getTreeItem(1).getValue()); - assertEquals("Group 2", view.getTreeItem(2).getValue()); - assertEquals("Group 3", view.getTreeItem(3).getValue()); - } + if (test_rt_35213_eventCount == 0) { + assertEquals(4, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Group 3", view.getTreeItem(3).getValue()); + } else if (test_rt_35213_eventCount == 1) { + assertEquals(6, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Employee 1", view.getTreeItem(3).getValue()); + assertEquals("Employee 2", view.getTreeItem(4).getValue()); + assertEquals("Group 3", view.getTreeItem(5).getValue()); + } else if (test_rt_35213_eventCount == 2) { + assertEquals(4, newCount); + assertEquals("Boss", view.getTreeItem(0).getValue()); + assertEquals("Group 1", view.getTreeItem(1).getValue()); + assertEquals("Group 2", view.getTreeItem(2).getValue()); + assertEquals("Group 3", view.getTreeItem(3).getValue()); + } - test_rt_35213_eventCount++; - } + test_rt_35213_eventCount++; }); new StageLoader(view); @@ -1683,11 +1661,9 @@ final TreeView textFieldTreeView = new TreeView(root); textFieldTreeView.setEditable(true); textFieldTreeView.setCellFactory(TextFieldTreeCell.forTreeView()); - textFieldTreeView.setOnEditCancel(new EventHandler>() { - @Override public void handle(TreeView.EditEvent t) { - rt_35889_cancel_count++; - System.out.println("On Edit Cancel: " + t); - } + textFieldTreeView.setOnEditCancel(t -> { + rt_35889_cancel_count++; + System.out.println("On Edit Cancel: " + t); }); TreeCell cell0 = (TreeCell) VirtualFlowTestUtils.getCell(textFieldTreeView, 0); diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxListCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxListCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxListCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxListCellTest.java @@ -47,11 +47,7 @@ @Before public void setup() { booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback>() { - public ObservableValue call(Object param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter() { @Override public String toString(Object object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTableCellTest.java @@ -55,11 +55,7 @@ tableView = new TableView<>(); tableColumn = new TableColumn<>(); booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback>() { - public ObservableValue call(Integer param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter() { @Override public String toString(Object object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeCellTest.java @@ -51,11 +51,7 @@ @Before public void setup() { booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback, ObservableValue>() { - public ObservableValue call(TreeItem param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter>() { @Override public String toString(TreeItem object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeTableCellTest.java @@ -58,11 +58,7 @@ tableView = new TreeTableView<>(); tableColumn = new TreeTableColumn<>(); booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback>() { - public ObservableValue call(Integer param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter() { @Override public String toString(Object object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java @@ -91,10 +91,8 @@ @Test public void testTextProperty() { assertEquals(0, count); - cell.textProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Object oldValue, Object newValue) { - count++; - } + cell.textProperty().addListener((observable, oldValue, newValue) -> { + count++; }); cell.setText("TEST"); @@ -125,10 +123,8 @@ @Test public void testGraphicProperty() { assertEquals(0, count); - cell.graphicProperty().addListener(new ChangeListener() { - @Override public void changed(ObservableValue observable, Node oldValue, Node newValue) { - count++; - } + cell.graphicProperty().addListener((observable, oldValue, newValue) -> { + count++; }); Rectangle rect1 = new Rectangle(10, 10, Color.RED); diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTableCellTest.java @@ -50,11 +50,7 @@ tableView = new TableView<>(); tableColumn = new TableColumn<>(); booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback>() { - public ObservableValue call(Integer param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter() { @Override public String toString(Object object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTreeTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTreeTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTreeTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTreeTableCellTest.java @@ -51,11 +51,7 @@ tableView = new TreeTableView<>(); tableColumn = new TreeTableColumn<>(); booleanProperty = new SimpleBooleanProperty(false); - callback = new Callback>() { - public ObservableValue call(Integer param) { - return booleanProperty; - } - }; + callback = param -> booleanProperty; converter = new StringConverter() { @Override public String toString(Object object) { return null; diff --git a/modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTableCellTest.java b/modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTableCellTest.java --- a/modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTableCellTest.java +++ b/modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTableCellTest.java @@ -392,11 +392,7 @@ @Test public void test_rt_32869() { TableColumn tc = new TableColumn(); - tc.setCellValueFactory(new Callback, ObservableValue>() { - @Override public ObservableValue call(TableColumn.CellDataFeatures param) { - return new ReadOnlyStringWrapper("Dummy Text"); - } - }); + tc.setCellValueFactory(param -> new ReadOnlyStringWrapper("Dummy Text")); TableView tableView = new TableView(FXCollections.observableArrayList("TEST")); tableView.getColumns().add(tc);