/** * Returns the window of the specified control. * * @param control control * @return Window */ protected Window getWindow(final Control control) { final Scene scene = control.getScene(); return scene == null ? null : scene.getWindow(); }
final Button helpButton = new Button("Help"); helpButton.setOnAction(new EventHandler() { public void handle(Event arg0) { showTooltip(stage, helpButton, "test tool tip", null); } }); public static void showTooltip(Stage owner, Control control, String tooltipText, ImageView tooltipGraphic) { Point2D p = control.localToScene(0.0, 0.0); final Tooltip customTooltip = new Tooltip(); customTooltip.setText(tooltipText); control.setTooltip(customTooltip); customTooltip.setAutoHide(true); customTooltip.show(owner, p.getX() + control.getScene().getX() + control.getScene().getWindow().getX(), p.getY() + control.getScene().getY() + control.getScene().getWindow().getY()); }
private static void modifyTableMenu(final Control control, final Consumer<ContextMenu> consumer) { if (control.getScene() == null) { control.sceneProperty().addListener(new InvalidationListener() { @Override public void invalidated(Observable o) { control.sceneProperty().removeListener(this); modifyTableMenu(control, consumer); } }); return; } Skin<?> skin = control.getSkin(); if (skin == null) { control.skinProperty().addListener(new InvalidationListener() { @Override public void invalidated(Observable o) { control.skinProperty().removeListener(this); modifyTableMenu(control, consumer); } }); return; } doModify(skin, consumer); }
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); }