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);
}
}