@Inject AppContextMenu(WorkspaceMenu workspace, ModulesMenu modulesMenu) { MenuItem exit = new MenuItem(DefaultI18nContext.getInstance().i18n("E_xit")); exit.setOnAction(e -> Platform.exit()); exit.setAccelerator(new KeyCodeCombination(KeyCode.Q, KeyCombination.SHORTCUT_DOWN)); getItems().addAll(workspace, modulesMenu); if (!Boolean.getBoolean(PreferencesDashboardItem.PDFSAM_DISABLE_SETTINGS_DEPRECATED) && !Boolean.getBoolean(PreferencesDashboardItem.PDFSAM_DISABLE_SETTINGS)) { MenuItem settings = new MenuItem(DefaultI18nContext.getInstance().i18n("_Settings")); settings.setOnAction( e -> eventStudio().broadcast(new SetActiveDashboardItemRequest(PreferencesDashboardItem.ID))); getItems().add(settings); } getItems().addAll(new SeparatorMenuItem(), exit); } }
@Override public void handle(javafx.scene.input.KeyEvent event) { KeyCodeCombination keyCombination = new KeyCodeCombination(KeyCode.ENTER, KeyCombination.SHORTCUT_DOWN); if (keyCombination.match(event)) { refresh(); } } });
@Override public RController type(KeyCodeCombination... combinations) { for( KeyCodeCombination combination : combinations ) { if( combination.getAlt() == ModifierValue.DOWN ) { glassRobot.keyPress(JavaFXCompatUtil.getCode(KeyCode.ALT)); } if( combination.getShift() == ModifierValue.DOWN ) { glassRobot.keyPress(JavaFXCompatUtil.getCode(KeyCode.SHIFT)); } if( combination.getControl() == ModifierValue.DOWN ) { glassRobot.keyPress(JavaFXCompatUtil.getCode(KeyCode.CONTROL)); } glassRobot.keyPress(JavaFXCompatUtil.getCode(combination.getCode())); glassRobot.keyRelease(JavaFXCompatUtil.getCode(combination.getCode())); if( combination.getAlt() == ModifierValue.DOWN ) { glassRobot.keyRelease(JavaFXCompatUtil.getCode(KeyCode.ALT)); } if( combination.getShift() == ModifierValue.DOWN ) { glassRobot.keyRelease(JavaFXCompatUtil.getCode(KeyCode.SHIFT)); } if( combination.getControl() == ModifierValue.DOWN ) { glassRobot.keyRelease(JavaFXCompatUtil.getCode(KeyCode.CONTROL)); } } return this; }
public void handle(final KeyEvent keyEvent) { if (copyKeyCodeCompination.match(keyEvent) && keyEvent.getSource() instanceof TableView) { // copy to clipboard copySelectionToClipboard((TableView<?>) keyEvent.getSource(), copyHeaders); // event is handled, consume it keyEvent.consume(); } } }
public class ShortcutFriendlyTextField extends TextField{ public ShortcutFriendlyTextField() { super(); addEventHandler(KeyEvent.KEY_RELEASED,new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent event) { //handle shortcuts if defined Runnable r=getScene().getAccelerators().get(new KeyCodeCombination(event.getCode())); if(r!=null) { r.run(); } } }); } }
@Inject public LogStage(LogPane logPane, LogListView logView, List<Image> logos, StylesConfig styles) { BorderPane containerPane = new BorderPane(); containerPane.getStyleClass().addAll(Style.CONTAINER.css()); containerPane.setCenter(logPane); containerPane.setBottom(new ClosePane((a) -> eventStudio().broadcast(HideStageRequest.INSTANCE, "LogStage"))); Scene scene = new Scene(containerPane); scene.getStylesheets().addAll(styles.styles()); scene.setOnKeyReleased(k -> { if (this.isShowing() && new KeyCodeCombination(KeyCode.ESCAPE).match(k)) { eventStudio().broadcast(HideStageRequest.INSTANCE, "LogStage"); } }); setScene(scene); setTitle(DefaultI18nContext.getInstance().i18n("Log register")); getIcons().addAll(logos); setMaximized(true); eventStudio().addAnnotatedListeners(this); this.onShowingProperty().addListener((o, oldVal, newVal) -> logView.scrollToBottomIfShowing()); eventStudio().add(logView, LOGSTAGE_EVENTSTATION); }
private Scene initScene() { MainPane mainPane = injector.instance(MainPane.class); NotificationsContainer notifications = injector.instance(NotificationsContainer.class); StackPane main = new StackPane(); StackPane.setAlignment(notifications, Pos.BOTTOM_RIGHT); StackPane.setAlignment(mainPane, Pos.TOP_LEFT); main.getChildren().addAll(mainPane, notifications); StylesConfig styles = injector.instance(StylesConfig.class); Scene mainScene = new Scene(main); mainScene.getStylesheets().addAll(styles.styles()); mainScene.getAccelerators().put(new KeyCodeCombination(KeyCode.L, KeyCombination.SHORTCUT_DOWN), () -> eventStudio().broadcast(ShowStageRequest.INSTANCE, "LogStage")); mainScene.getAccelerators().put(new KeyCodeCombination(KeyCode.Q, KeyCombination.SHORTCUT_DOWN), () -> Platform.exit()); return mainScene; }
public void addMenu(Control tableView, Runnable copyTableCell, Supplier<String> createCsvFromTable){ MenuItem item = new MenuItem("Copy cell",uniformDesign.createIcon(FontAwesome.Glyph.COPY)); item.setOnAction(event -> { copyTableCell.run(); }); item.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN));//don't work on ContextMenu but keep is for the display text KeyCodeCombination keyCodeCombination = new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN); tableView.addEventFilter(KeyEvent.KEY_RELEASED, event -> { if (keyCodeCombination.match(event)) { copyTableCell.run(); } }); MenuItem export = new MenuItem("Copy table (csv)",uniformDesign.createIcon(FontAwesome.Glyph.TABLE)); export.setOnAction(event -> { exportTableToClipboard(createCsvFromTable.get()); }); MenuItem fileExport = new MenuItem("Save table (csv)",uniformDesign.createIcon(FontAwesome.Glyph.FILE)); fileExport.setOnAction(event -> { exportTableToFile(createCsvFromTable.get(),tableView.getScene().getWindow()); }); ContextMenu menu = new ContextMenu(); menu.getItems().add(item); menu.getItems().add(export); menu.getItems().add(fileExport); tableView.setContextMenu(menu); }
private void initTopSectionContextMenu(ContextMenu contextMenu, boolean hasRanges) { MenuItem setDestinationItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Set destination"), MaterialDesignIcon.AIRPLANE_LANDING); setDestinationItem.setOnAction(e -> eventStudio().broadcast( requestDestination(getSelectionModel().getSelectedItem().descriptor().getFile(), getOwnerModule()), getOwnerModule())); setDestinationItem.setAccelerator(new KeyCodeCombination(KeyCode.O, KeyCombination.ALT_DOWN)); selectionChangedConsumer = e -> setDestinationItem.setDisable(!e.isSingleSelection()); contextMenu.getItems().add(setDestinationItem); if (hasRanges) { MenuItem setPageRangesItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Set as range for all"), MaterialDesignIcon.FORMAT_INDENT_INCREASE); setPageRangesItem.setOnAction(e -> eventStudio().broadcast( new SetPageRangesRequest(getSelectionModel().getSelectedItem().pageSelection.get()), getOwnerModule())); setPageRangesItem.setAccelerator(new KeyCodeCombination(KeyCode.R, KeyCombination.CONTROL_DOWN)); selectionChangedConsumer = selectionChangedConsumer .andThen(e -> setPageRangesItem.setDisable(!e.isSingleSelection())); contextMenu.getItems().add(setPageRangesItem); } contextMenu.getItems().add(new SeparatorMenuItem()); }
MaterialDesignIcon.MINUS); removeSelected.setOnAction(e -> eventStudio().broadcast(new RemoveSelectedEvent(), getOwnerModule())); removeSelected.setAccelerator(new KeyCodeCombination(KeyCode.DELETE)); contextMenu.getItems().add(removeSelected); selectionChangedConsumer = selectionChangedConsumer moveBottomSelected.setAccelerator(new KeyCodeCombination(KeyCode.END, KeyCombination.ALT_DOWN)); moveDownSelected.setAccelerator(new KeyCodeCombination(KeyCode.DOWN, KeyCombination.ALT_DOWN)); moveUpSelected.setAccelerator(new KeyCodeCombination(KeyCode.UP, KeyCombination.ALT_DOWN)); moveTopSelected.setAccelerator(new KeyCodeCombination(KeyCode.HOME, KeyCombination.ALT_DOWN)); MaterialDesignIcon.CONTENT_DUPLICATE); duplicateItem.setOnAction(e -> eventStudio().broadcast(new DuplicateSelectedEvent(), getOwnerModule())); duplicateItem.setAccelerator(new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.ALT_DOWN));
private void initBottomSectionContextMenu(ContextMenu contextMenu) { MenuItem copyItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Copy to clipboard"), MaterialDesignIcon.CONTENT_COPY); copyItem.setOnAction(e -> copySelectedToClipboard()); MenuItem infoItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Document properties"), MaterialDesignIcon.INFORMATION_OUTLINE); infoItem.setOnAction(e -> Platform.runLater(() -> eventStudio() .broadcast(new ShowPdfDescriptorRequest(getSelectionModel().getSelectedItem().descriptor())))); MenuItem openFileItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Open"), MaterialDesignIcon.FILE_PDF_BOX); openFileItem.setOnAction(e -> eventStudio() .broadcast(new OpenFileRequest(getSelectionModel().getSelectedItem().descriptor().getFile()))); MenuItem openFolderItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Open Folder"), MaterialDesignIcon.FOLDER_OUTLINE); openFolderItem.setOnAction(e -> eventStudio().broadcast( new OpenFileRequest(getSelectionModel().getSelectedItem().descriptor().getFile().getParentFile()))); copyItem.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.SHORTCUT_DOWN)); infoItem.setAccelerator(new KeyCodeCombination(KeyCode.P, KeyCombination.ALT_DOWN)); openFileItem.setAccelerator(new KeyCodeCombination(KeyCode.O, KeyCombination.SHORTCUT_DOWN)); openFolderItem.setAccelerator( new KeyCodeCombination(KeyCode.O, KeyCombination.SHORTCUT_DOWN, KeyCombination.ALT_DOWN)); contextMenu.getItems().addAll(new SeparatorMenuItem(), copyItem, infoItem, openFileItem, openFolderItem); selectionChangedConsumer = selectionChangedConsumer.andThen(e -> { copyItem.setDisable(e.isClearSelection()); infoItem.setDisable(!e.isSingleSelection()); openFileItem.setDisable(!e.isSingleSelection()); openFolderItem.setDisable(!e.isSingleSelection()); }); }
public static void registerAccelerators(Scene scene) { // save accelerator registerAccelerator(scene, new KeyCodeCombination(KeyCode.S, KeyCombination.SHORTCUT_DOWN), Savable.class, Savable::save); registerAccelerator(scene, new KeyCodeCombination(KeyCode.R, KeyCombination.SHORTCUT_DOWN), Runnable.class, Runnable::run); }
static EventPattern<Event, KeyEvent> keyPressed(KeyCode code, KeyCombination.Modifier... modifiers) { return keyPressed(new KeyCodeCombination(code, modifiers)); }
static EventPattern<Event, KeyEvent> keyReleased(KeyCode code, KeyCombination.Modifier... modifiers) { return keyReleased(new KeyCodeCombination(code, modifiers)); }
public void setup(final BrowserFXController controller) { final ObservableMap<KeyCombination, Runnable> accelerators = scene.getAccelerators(); accelerators.put(new KeyCodeCombination(KeyCode.F6), controller::focusAddressBar); accelerators.put(new KeyCodeCombination(KeyCode.LEFT, KeyCombination.ALT_DOWN), controller::back); accelerators.put(new KeyCodeCombination(KeyCode.RIGHT, KeyCombination.ALT_DOWN), controller::forward); accelerators.put( new KeyCodeCombination(KeyCode.T, KeyCombination.SHORTCUT_DOWN), controller::newTab); accelerators.put( new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN), controller::closeTab); accelerators.put( new KeyCodeCombination(KeyCode.Q, KeyCombination.SHORTCUT_DOWN), this::promptToQuit); }
private void initContextMenu() { MenuItem infoItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Document properties"), MaterialDesignIcon.INFORMATION_OUTLINE); infoItem.setAccelerator(new KeyCodeCombination(KeyCode.P, KeyCombination.ALT_DOWN)); infoItem.setOnAction( e -> Platform.runLater(() -> eventStudio().broadcast(new ShowPdfDescriptorRequest(descriptor)))); removeSelected = createMenuItem(DefaultI18nContext.getInstance().i18n("Remove"), MaterialDesignIcon.MINUS); removeSelected.setOnAction(e -> eventStudio().broadcast(new ClearModuleEvent(), getOwnerModule())); MenuItem setDestinationItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Set destination"), MaterialDesignIcon.AIRPLANE_LANDING); setDestinationItem.setAccelerator(new KeyCodeCombination(KeyCode.O, KeyCombination.ALT_DOWN)); setDestinationItem.setOnAction(e -> eventStudio() .broadcast(requestDestination(descriptor.getFile(), getOwnerModule()), getOwnerModule())); MenuItem openFileItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Open"), MaterialDesignIcon.FILE_PDF_BOX); openFileItem.setOnAction(e -> eventStudio().broadcast(new OpenFileRequest(descriptor.getFile()))); MenuItem openFolderItem = createMenuItem(DefaultI18nContext.getInstance().i18n("Open Folder"), MaterialDesignIcon.FOLDER_OUTLINE); openFolderItem .setOnAction(e -> eventStudio().broadcast(new OpenFileRequest(descriptor.getFile().getParentFile()))); field.getTextField().setContextMenu(new ContextMenu(setDestinationItem, new SeparatorMenuItem(), removeSelected, new SeparatorMenuItem(), infoItem, openFileItem, openFolderItem)); }
/** * Install default accelerators * * @param scene */ public void installAccelerators(Scene scene) { // Accelerators if (stage.isResizable()) { scene.getAccelerators().put(new KeyCodeCombination(KeyCode.F, KeyCombination.CONTROL_DOWN, KeyCombination.SHORTCUT_DOWN), () -> switchFullscreen()); } scene.getAccelerators().put(new KeyCodeCombination(KeyCode.M, KeyCombination.SHORTCUT_DOWN), () -> iconify()); scene.getAccelerators().put(new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN), () -> switchClose()); }
scene.setOnKeyPressed(new EventHandler<KeyEvent>() { KeyCombination charCombo = new KeyCharacterCombination("+", KeyCombination.CONTROL_DOWN); KeyCombination codeCombo = new KeyCodeCombination(KeyCode.PLUS, KeyCombination.CONTROL_DOWN);
private void sendOnControlEnter() { tweetTextArea.sceneProperty().addListener((o, prev, cur) -> cur.getAccelerators().put( new KeyCodeCombination(KeyCode.ENTER, KeyCombination.CONTROL_DOWN), sendButton::fire )); }
MenuItem copyItem = new MenuItem(i18n.i18n("Copy")); copyItem.setId("copyLogMenuItem"); copyItem.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.SHORTCUT_DOWN)); copyItem.setOnAction(e -> copyLog(logView.getSelectionModel().getSelectedItems()));