modules/web/src/main/java/com/sun/javafx/scene/web/behavior/HTMLEditorBehavior.java

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

*** 23,73 **** * questions. */ package com.sun.javafx.scene.web.behavior; - import javafx.scene.web.HTMLEditor; - import java.util.ArrayList; - import java.util.List; import com.sun.javafx.scene.control.behavior.BehaviorBase; ! import com.sun.javafx.scene.control.behavior.KeyBinding; import com.sun.javafx.scene.web.skin.HTMLEditorSkin; ! import static javafx.scene.input.KeyCode.B; ! import static javafx.scene.input.KeyCode.F12; ! import static javafx.scene.input.KeyCode.I; ! import static javafx.scene.input.KeyCode.TAB; ! import static javafx.scene.input.KeyCode.U; /** * HTML editor behavior. */ public class HTMLEditorBehavior extends BehaviorBase<HTMLEditor> { ! protected static final List<KeyBinding> HTML_EDITOR_BINDINGS = new ArrayList<KeyBinding>(); - static { - HTML_EDITOR_BINDINGS.add(new KeyBinding(B, "bold").shortcut()); - HTML_EDITOR_BINDINGS.add(new KeyBinding(I, "italic").shortcut()); - HTML_EDITOR_BINDINGS.add(new KeyBinding(U, "underline").shortcut()); - - HTML_EDITOR_BINDINGS.add(new KeyBinding(F12, "F12")); - HTML_EDITOR_BINDINGS.add(new KeyBinding(TAB, "TraverseNext").ctrl()); - HTML_EDITOR_BINDINGS.add(new KeyBinding(TAB, "TraversePrevious").ctrl().shift()); - } public HTMLEditorBehavior(HTMLEditor htmlEditor) { ! super(htmlEditor, HTML_EDITOR_BINDINGS); } ! @Override ! protected void callAction(String name) { ! if ("bold".equals(name) || "italic".equals(name) || "underline".equals(name)) { ! HTMLEditor editor = getControl(); HTMLEditorSkin editorSkin = (HTMLEditorSkin)editor.getSkin(); editorSkin.keyboardShortcuts(name); - } else if ("F12".equals(name)) { - getControl().getImpl_traversalEngine().selectFirst().requestFocus(); - } else { - super.callAction(name); - } } } --- 23,69 ---- * questions. */ package com.sun.javafx.scene.web.behavior; import com.sun.javafx.scene.control.behavior.BehaviorBase; ! import com.sun.javafx.scene.control.inputmap.InputMap; ! import com.sun.javafx.scene.control.inputmap.KeyBinding; ! import javafx.scene.web.HTMLEditor; import com.sun.javafx.scene.web.skin.HTMLEditorSkin; ! import com.sun.javafx.scene.control.behavior.FocusTraversalInputMap; + import static javafx.scene.input.KeyCode.*; + import static com.sun.javafx.scene.control.inputmap.InputMap.KeyMapping; /** * HTML editor behavior. */ public class HTMLEditorBehavior extends BehaviorBase<HTMLEditor> { ! private final InputMap<HTMLEditor> inputMap; public HTMLEditorBehavior(HTMLEditor htmlEditor) { ! super(htmlEditor); ! ! this.inputMap = createInputMap(); ! addDefaultMapping(inputMap, ! new KeyMapping(new KeyBinding(B).shortcut(), e -> keyboardShortcuts("bold")), ! new KeyMapping(new KeyBinding(I).shortcut(), e -> keyboardShortcuts("italic")), ! new KeyMapping(new KeyBinding(U).shortcut(), e -> keyboardShortcuts("underline")), ! ! new KeyMapping(new KeyBinding(F12), e -> getNode().getImpl_traversalEngine().selectFirst().requestFocus()), ! new KeyMapping(new KeyBinding(TAB).ctrl(), FocusTraversalInputMap::traverseNext), ! new KeyMapping(new KeyBinding(TAB).ctrl().shift(), FocusTraversalInputMap::traversePrevious) ! ); } ! @Override public InputMap<HTMLEditor> getInputMap() { ! return inputMap; ! } ! ! private void keyboardShortcuts(String name) { ! HTMLEditor editor = getNode(); HTMLEditorSkin editorSkin = (HTMLEditorSkin)editor.getSkin(); editorSkin.keyboardShortcuts(name); } }