modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/SplitMenuButtonBehavior.java
Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -24,12 +24,12 @@
*/
package com.sun.javafx.scene.control.behavior;
import javafx.scene.control.SplitMenuButton;
-import java.util.ArrayList;
-import java.util.List;
+import com.sun.javafx.scene.control.inputmap.InputMap;
+
import static javafx.scene.input.KeyCode.ENTER;
import static javafx.scene.input.KeyCode.SPACE;
import static javafx.scene.input.KeyEvent.KEY_PRESSED;
import static javafx.scene.input.KeyEvent.KEY_RELEASED;
@@ -48,33 +48,38 @@
* Creates a new SplitMenuButtonBehavior for the given SplitMenuButton.
*
* @param splitMenuButton the SplitMenuButton
*/
public SplitMenuButtonBehavior(final SplitMenuButton splitMenuButton) {
- super(splitMenuButton, SPLIT_MENU_BUTTON_BINDINGS);
+ super(splitMenuButton);
+
+ /**
+ * The key bindings for the SplitMenuButton. Sets the Enter key as the means
+ * to open the menu and the space key as the means to activate the action.
+ */
+ addDefaultMapping(new InputMap.KeyMapping(SPACE, KEY_PRESSED, this::keyPressed));
+ addDefaultMapping(new InputMap.KeyMapping(SPACE, KEY_RELEASED, this::keyReleased));
+ addDefaultMapping(new InputMap.KeyMapping(ENTER, KEY_PRESSED, this::keyPressed));
+ addDefaultMapping(new InputMap.KeyMapping(ENTER, KEY_RELEASED, this::keyReleased));
}
/***************************************************************************
* *
* Key event handling *
* *
**************************************************************************/
- /**
- * The key bindings for the SplitMenuButton. Sets the Enter key as the means
- * to open the menu and the space key as the means to activate the action.
- */
- protected static final List<KeyBinding> SPLIT_MENU_BUTTON_BINDINGS = new ArrayList<KeyBinding>();
- static {
- SPLIT_MENU_BUTTON_BINDINGS.addAll(BASE_MENU_BUTTON_BINDINGS);
-
- /*
- * TODO: ButtonBehavior should define "Press" and "Release" in
- * constants.
- */
- SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(SPACE, KEY_PRESSED, "Press"));
- SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(SPACE, KEY_RELEASED, "Release"));
-
- SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(ENTER, KEY_PRESSED, "Press"));
- SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(ENTER, KEY_RELEASED, "Release"));
- }
+// /**
+// * The key bindings for the SplitMenuButton. Sets the Enter key as the means
+// * to open the menu and the space key as the means to activate the action.
+// */
+// protected static final List<KeyBinding> SPLIT_MENU_BUTTON_BINDINGS = new ArrayList<KeyBinding>();
+// static {
+// SPLIT_MENU_BUTTON_BINDINGS.addAll(BASE_MENU_BUTTON_BINDINGS);
+//
+// SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(SPACE, KEY_PRESSED, "Press"));
+// SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(SPACE, KEY_RELEASED, "Release"));
+//
+// SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(ENTER, KEY_PRESSED, "Press"));
+// SPLIT_MENU_BUTTON_BINDINGS.add(new KeyBinding(ENTER, KEY_RELEASED, "Release"));
+// }
}