modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ToolBarBehavior.java

Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization

*** 23,67 **** * questions. */ package com.sun.javafx.scene.control.behavior; import javafx.scene.control.ToolBar; ! import javafx.scene.input.KeyCode; ! import java.util.ArrayList; ! import java.util.List; /** * A Behavior implementation for ToolBars. - * */ public class ToolBarBehavior extends BehaviorBase<ToolBar> { public ToolBarBehavior(ToolBar toolbar) { ! super(toolbar, TOOLBAR_BINDINGS); ! } ! /*************************************************************************** ! * * ! * Key event handling * ! * * ! **************************************************************************/ ! ! private static final String CTRL_F5 = "Ctrl_F5"; ! ! protected static final List<KeyBinding> TOOLBAR_BINDINGS = new ArrayList<KeyBinding>(); ! static { ! TOOLBAR_BINDINGS.add(new KeyBinding(KeyCode.F5, CTRL_F5).ctrl()); ! } ! ! @Override protected void callAction(String name) { ! if (CTRL_F5.equals(name)) { ! ToolBar toolbar = getControl(); if (!toolbar.getItems().isEmpty()) { toolbar.getItems().get(0).requestFocus(); } ! } else { ! super.callAction(name); } } } --- 23,62 ---- * questions. */ package com.sun.javafx.scene.control.behavior; + import com.sun.javafx.scene.control.inputmap.InputMap; + import com.sun.javafx.scene.control.inputmap.KeyBinding; import javafx.scene.control.ToolBar; ! ! import static javafx.scene.input.KeyCode.*; ! import static com.sun.javafx.scene.control.inputmap.InputMap.KeyMapping; /** * A Behavior implementation for ToolBars. */ public class ToolBarBehavior extends BehaviorBase<ToolBar> { + private final InputMap<ToolBar> toolBarInputMap; public ToolBarBehavior(ToolBar toolbar) { ! super(toolbar); ! // create a map for toolbar-specific mappings (this reuses the default ! // InputMap installed on the control, if it is non-null, allowing us to pick up any user-specified mappings) ! toolBarInputMap = createInputMap(); ! ! // toolbar-specific mappings for key and mouse input ! addDefaultMapping(toolBarInputMap, ! new KeyMapping(new KeyBinding(F5).ctrl(), e -> { if (!toolbar.getItems().isEmpty()) { toolbar.getItems().get(0).requestFocus(); } ! }) ! ); } + + @Override public InputMap<ToolBar> getInputMap() { + return toolBarInputMap; } }