private boolean isModifierCorrect(KeyEvent t, KeyCode keyCode) { return (keyCode != KeyCode.ALT ^ t.isAltDown()) && (keyCode != KeyCode.CONTROL ^ t.isControlDown()) && (keyCode != KeyCode.SHIFT ^ t.isShiftDown()) && (keyCode != KeyCode.META ^ t.isMetaDown()); }
private static boolean hasModifierPressed(KeyEvent event) { return event.isAltDown() || event.isControlDown() || event.isMetaDown() || event.isShiftDown(); }
private static int getStateMask(KeyEvent event) { int rv = 0; if (event.isAltDown()) { rv |= FxKeyLookup.ALT; } if (event.isControlDown()) { rv |= FxKeyLookup.CTRL; } if (event.isShiftDown()) { rv |= FxKeyLookup.SHIFT; } if (event.isMetaDown()) { rv |= FxKeyLookup.COMMAND; } return rv; }
private void _keyTyped(KeyEvent event) { if (getControl().getEditable()) { String character = event.getCharacter(); if (character.length() == 0) { return; } // check the modifiers // - OS-X: ALT+L ==> @ // - win32/linux: ALTGR+Q ==> @ if (event.isControlDown() || event.isAltDown() || (Util.isMacOS() && event.isMetaDown())) { if (!((event.isControlDown() || Util.isMacOS()) && event.isAltDown())) return; } if (character.charAt(0) > 31 // No ascii control chars && character.charAt(0) != 127 // no delete key && !event.isMetaDown()) { final int offset = getControl().getCaretOffset(); getControl().getContent().replaceTextRange(getControl().getCaretOffset(), 0, character); getControl().setCaretOffset(offset + 1); } } }
private void onKeyTyped(KeyEvent event) { if (getControl().getEditable()) { String character = event.getCharacter(); if (character.length() == 0) { return; } // check the modifiers // - OS-X: ALT+L ==> @ // - win32/linux: ALTGR+Q ==> @ if (event.isControlDown() || event.isAltDown() || (Util.isMacOS() && event.isMetaDown())) { if (!((event.isControlDown() || Util.isMacOS()) && event.isAltDown())) return; } if (character.charAt(0) > 31 // No ascii control chars && character.charAt(0) != 127 // no delete key && !event.isMetaDown()) { getControl().insert(character); // check for typed char action if( this.keyTriggerMapping.exists(character.charAt(0)) ) { getControl().fireEvent(UndoHintEvent.createBeginCompoundChangeEvent()); try { this.keyTriggerMapping.triggerAction(character.charAt(0), new Context(getControl())); } finally { getControl().fireEvent(UndoHintEvent.createEndCompoundChangeEvent()); } } } } }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public void setType(Class<?> type) { super.setType(type); // choice box does not need a value translator because the items are already of model type // and choice-box is not editable // deselect by DELETE- or BACKSPACE-key (with or without shift) component.addEventFilter(KeyEvent.KEY_PRESSED, event -> { if (!event.isAltDown() && !event.isControlDown() && !event.isMetaDown() && !event.isShortcutDown() && (event.getCode() == KeyCode.DELETE || event.getCode() == KeyCode.BACK_SPACE) && !component.isDisabled() && isDeselectAllowed()) { event.consume(); component.getSelectionModel().clearSelection(); } }); if (type.isEnum()) { ObservableList items = component.getItems(); items.clear(); items.addAll(Arrays.asList(type.getEnumConstants())); } }
@Override protected void remapKeys(T control) { control.addEventFilter(KeyEvent.ANY, (KeyEvent event) -> { if (event.getCode() == KeyCode.ENTER && !event.isControlDown() && !event.isAltDown() && !event.isMetaDown() && event.getEventType() == KeyEvent.KEY_PRESSED) { if (event.isShiftDown()) { focusPrevious(control); } else { focusNext(control); } } }); }
protected void fxKeyEvent(javafx.scene.input.KeyEvent fxEvent) { int action = 0; EventType<? extends KeyEvent> et = fxEvent.getEventType(); if (et == KeyEvent.KEY_PRESSED) { action = processing.event.KeyEvent.PRESS; } else if (et == KeyEvent.KEY_RELEASED) { action = processing.event.KeyEvent.RELEASE; } else if (et == KeyEvent.KEY_TYPED) { action = processing.event.KeyEvent.TYPE; } int modifiers = 0; if (fxEvent.isShiftDown()) { modifiers |= processing.event.Event.SHIFT; } if (fxEvent.isControlDown()) { modifiers |= processing.event.Event.CTRL; } if (fxEvent.isMetaDown()) { modifiers |= processing.event.Event.META; } if (fxEvent.isAltDown()) { modifiers |= processing.event.Event.ALT; } long when = System.currentTimeMillis(); char keyChar = getKeyChar(fxEvent); int keyCode = getKeyCode(fxEvent); sketch.postEvent(new processing.event.KeyEvent(fxEvent, when, action, modifiers, keyChar, keyCode)); }
/** * The event * * @param source * the source * @param target * the target * @param event * the key */ public VerifyEvent(Object source, EventTarget target, KeyEvent event) { super(source, target, VERIFY); boolean isKeyTyped = event.getEventType() == KeyEvent.KEY_TYPED; this.character = isKeyTyped ? event.getCharacter() : KeyEvent.CHAR_UNDEFINED; this.text = isKeyTyped ? "" : event.getText(); //$NON-NLS-1$ this.code = isKeyTyped ? KeyCode.UNDEFINED : event.getCode(); this.shiftDown = event.isShiftDown(); this.controlDown = event.isControlDown(); this.altDown = event.isAltDown(); this.metaDown = event.isMetaDown(); }
/** * The event * * @param source * the source * @param target * the target * @param event * the key */ public VerifyEvent(Object source, EventTarget target, KeyEvent event) { super(source, target, VERIFY); boolean isKeyTyped = event.getEventType() == KeyEvent.KEY_TYPED; this.character = isKeyTyped ? event.getCharacter() : KeyEvent.CHAR_UNDEFINED; this.text = isKeyTyped ? "" : event.getText(); //$NON-NLS-1$ this.code = isKeyTyped ? KeyCode.UNDEFINED : event.getCode(); this.shiftDown = event.isShiftDown(); this.controlDown = event.isControlDown(); this.altDown = event.isAltDown(); this.metaDown = event.isMetaDown(); }
@Override @SuppressWarnings("unchecked") public void setType(Class<?> type) { // important to set the type before creating the translator, // since the translator may need to know the type super.setType(type); // deselect by DELETE- or BACKSPACE-key (with or without shift) component.addEventFilter(KeyEvent.KEY_PRESSED, event -> { if (!event.isAltDown() && !event.isControlDown() && !event.isMetaDown() && !event.isShortcutDown() && (event.getCode() == KeyCode.DELETE || event.getCode() == KeyCode.BACK_SPACE) && !component.isEditable() && !component.isDisabled() && isDeselectAllowed()) { event.consume(); component.getSelectionModel().clearSelection(); } }); if (type.isEnum()) { ObservableList items = component.getItems(); items.clear(); items.addAll(Arrays.asList(type.getEnumConstants())); } }
/** * Filters certain keys for special features. * * @param control the fx control */ public void filterKeys(Control control) { if (control instanceof FxComponent) { control.addEventFilter(KeyEvent.ANY, event -> { if (event.getCode() == KeyCode.Z && event.isControlDown() && !event.isAltDown() && !event.isMetaDown() && !event.isShiftDown()) { FxComponent comp = (FxComponent) control; if (comp.isViewModified()) { if (event.getEventType() == KeyEvent.KEY_PRESSED) { // Ctrl-Z pressed and old view value saved: restore it! comp.setViewObject(comp.getSavedViewObject()); } event.consume(); } } }); } }
@Override public void configure(T control) { super.configure(control); // first keystroke triggers check for modification control.textProperty().addListener(o -> ((FxComponent) control).triggerViewModified()); // Shift-Backspace clears the field control.addEventFilter(KeyEvent.ANY, (KeyEvent event) -> { if (event.getCode() == KeyCode.BACK_SPACE && event.isShiftDown() && !event.isControlDown() && !event.isAltDown() && !event.isMetaDown()) { if (event.getEventType() == KeyEvent.KEY_PRESSED && !control.isDisabled() && control.isEditable()) { control.clear(); } event.consume(); } }); }
@Override protected void remapKeys(T control) { control.addEventFilter(KeyEvent.ANY, (KeyEvent event) -> { if ((event.getCode() == KeyCode.TAB || event.getCode() == KeyCode.ENTER) && !event.isAltDown() && !event.isMetaDown()) { if (event.getEventType() == KeyEvent.KEY_PRESSED) { if (event.isControlDown()) { control.insertText(control.getCaretPosition(), event.getCode() == KeyCode.TAB ? "\t" : "\n"); } else { if (event.isShiftDown()) { focusPrevious(control); } else { focusNext(control); } } } event.consume(); } }); }
private void handleKeyEvent(javafx.scene.input.KeyEvent event) { if (event.isAltDown()) { double r = event.isShiftDown() ? 1 : -1; switch (event.getCode()) { case X: composeRotation(r, Vector3D.PLUS_I, rxy); break; case Y: composeRotation(r, Vector3D.PLUS_J, rxy); break; case Z: rz.setAngle(rz.getAngle() + r); break; } } else { double tinc = event.isShiftDown() ? 10 : -10; switch (event.getCode()) { case X: t.setX(t.getX() + tinc); break; case Y: t.setY(t.getY() + tinc); break; case Z: t.setZ(t.getZ() + tinc); break; } } }
@Override public void configure(T control) { super.configure(control); // first keystroke triggers check for modification control.getEditor().textProperty().addListener(o -> ((FxComponent) control).triggerViewModified()); // Shift-Backspace clears the field control.addEventFilter(KeyEvent.ANY, (KeyEvent event) -> { if (event.getCode() == KeyCode.BACK_SPACE && event.isShiftDown() && !event.isControlDown() && !event.isAltDown() && !event.isMetaDown()) { if (event.getEventType() == KeyEvent.KEY_PRESSED && !control.getEditor().isDisabled() && control.getEditor().isEditable()) { control.getEditor().clear(); } event.consume(); } }); }