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

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

*** 24,87 **** */ package com.sun.javafx.scene.control.behavior; import javafx.scene.control.TitledPane; import javafx.scene.input.MouseEvent; ! import java.util.ArrayList; ! import java.util.List; ! import static javafx.scene.input.KeyCode.ENTER; import static javafx.scene.input.KeyCode.SPACE; public class TitledPaneBehavior extends BehaviorBase<TitledPane> { ! private TitledPane titledPane; public TitledPaneBehavior(TitledPane pane) { ! super(pane, TITLEDPANE_BINDINGS); this.titledPane = pane; - } ! /*************************************************************************** ! * * ! * Key event handling * ! * * ! **************************************************************************/ ! private static final String PRESS_ACTION = "Press"; - protected static final List<KeyBinding> TITLEDPANE_BINDINGS = new ArrayList<KeyBinding>(); - static { // ENTER should not be a key binding for TitledPane, as this is the // key reserved for the default button. See RT-40166 for more detail. ! // TITLEDPANE_BINDINGS.add(new KeyBinding(ENTER, PRESS_ACTION)); ! TITLEDPANE_BINDINGS.add(new KeyBinding(SPACE, PRESS_ACTION)); ! } ! ! @Override protected void callAction(String name) { ! switch (name) { ! case PRESS_ACTION: if (titledPane.isCollapsible() && titledPane.isFocused()) { titledPane.setExpanded(!titledPane.isExpanded()); titledPane.requestFocus(); } ! break; ! default: ! super.callAction(name); } } /*************************************************************************** * * * Mouse event handling * * * **************************************************************************/ ! @Override public void mousePressed(MouseEvent e) { ! super.mousePressed(e); ! TitledPane tp = getControl(); ! tp.requestFocus(); } /************************************************************************** * State and Functions * *************************************************************************/ --- 24,108 ---- */ package com.sun.javafx.scene.control.behavior; import javafx.scene.control.TitledPane; + import com.sun.javafx.scene.control.inputmap.InputMap; import javafx.scene.input.MouseEvent; ! import static javafx.scene.input.KeyCode.SPACE; public class TitledPaneBehavior extends BehaviorBase<TitledPane> { ! private final TitledPane titledPane; ! private final InputMap<TitledPane> inputMap; public TitledPaneBehavior(TitledPane pane) { ! super(pane); this.titledPane = pane; ! // create a map for titledPane-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) ! inputMap = createInputMap(); ! // add focus traversal mappings ! addDefaultMapping(inputMap, FocusTraversalInputMap.getFocusTraversalMappings()); // ENTER should not be a key binding for TitledPane, as this is the // key reserved for the default button. See RT-40166 for more detail. ! addDefaultMapping( ! new InputMap.KeyMapping(SPACE, e -> { if (titledPane.isCollapsible() && titledPane.isFocused()) { titledPane.setExpanded(!titledPane.isExpanded()); titledPane.requestFocus(); } ! }), ! new InputMap.MouseMapping(MouseEvent.MOUSE_PRESSED, this::mousePressed) ! ); } + + @Override public InputMap<TitledPane> getInputMap() { + return inputMap; } /*************************************************************************** * * + * Key event handling * + * * + **************************************************************************/ + + // private static final String PRESS_ACTION = "Press"; + // + // protected static final List<KeyBinding> TITLEDPANE_BINDINGS = new ArrayList<KeyBinding>(); + // static { + // // ENTER should not be a key binding for TitledPane, as this is the + // // key reserved for the default button. See RT-40166 for more detail. + // // TITLEDPANE_BINDINGS.add(new KeyBinding(ENTER, PRESS_ACTION)); + // TITLEDPANE_BINDINGS.add(new KeyBinding(SPACE, PRESS_ACTION)); + // } + // + // @Override protected void callAction(String name) { + // switch (name) { + // case PRESS_ACTION: + // if (titledPane.isCollapsible() && titledPane.isFocused()) { + // titledPane.setExpanded(!titledPane.isExpanded()); + // titledPane.requestFocus(); + // } + // break; + // default: + // super.callAction(name); + // } + // } + + /*************************************************************************** + * * * Mouse event handling * * * **************************************************************************/ ! public void mousePressed(MouseEvent e) { ! getNode().requestFocus(); } /************************************************************************** * State and Functions * *************************************************************************/