Java Code Examples for javafx.scene.control.Tooltip#install()
The following examples show how to use
javafx.scene.control.Tooltip#install() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AttributeNameTableCell.java From pmd-designer with BSD 2-Clause "Simplified" License | 6 votes |
private void updateAttr(@Nullable Attribute attr) { if (tooltip != null) { Tooltip.uninstall(this, tooltip); getStyleClass().remove(DEPRECATED_CSS_CLASS); tooltip = null; } if (attr == null) { return; } String replacement = attr.replacementIfDeprecated(); if (replacement != null) { String txt = "This attribute is deprecated"; if (!replacement.isEmpty()) { txt += ", please use " + replacement + " instead"; } Tooltip t = new Tooltip(txt); tooltip = t; getStyleClass().add(DEPRECATED_CSS_CLASS); Tooltip.install(this, t); } }
Example 2
Source File: ChartCanvas.java From buffer_bci with GNU General Public License v3.0 | 6 votes |
/** * Sets the tooltip text, with the (x, y) location being used for the * anchor. If the text is {@code null}, no tooltip will be displayed. * This method is intended for calling by the {@link TooltipHandlerFX} * class, you won't normally call it directly. * * @param text the text ({@code null} permitted). * @param x the x-coordinate of the mouse pointer. * @param y the y-coordinate of the mouse pointer. */ public void setTooltip(String text, double x, double y) { if (text != null) { if (this.tooltip == null) { this.tooltip = new Tooltip(text); Tooltip.install(this, this.tooltip); } else { this.tooltip.setText(text); this.tooltip.setAnchorX(x); this.tooltip.setAnchorY(y); } } else { Tooltip.uninstall(this, this.tooltip); this.tooltip = null; } }
Example 3
Source File: ChartCanvas.java From jfreechart-fx with GNU Lesser General Public License v2.1 | 6 votes |
/** * Sets the tooltip text, with the (x, y) location being used for the * anchor. If the text is {@code null}, no tooltip will be displayed. * This method is intended for calling by the {@link TooltipHandlerFX} * class, you won't normally call it directly. * * @param text the text ({@code null} permitted). * @param x the x-coordinate of the mouse pointer. * @param y the y-coordinate of the mouse pointer. */ public void setTooltip(String text, double x, double y) { if (text != null) { if (this.tooltip == null) { this.tooltip = new Tooltip(text); Tooltip.install(this, this.tooltip); } else { this.tooltip.setText(text); this.tooltip.setAnchorX(x); this.tooltip.setAnchorY(y); } } else { Tooltip.uninstall(this, this.tooltip); this.tooltip = null; } }
Example 4
Source File: World.java From charts with Apache License 2.0 | 6 votes |
public void addLocation(final Location LOCATION) { double x = (LOCATION.getLongitude() + 180) * (PREFERRED_WIDTH / 360) + MAP_OFFSET_X; double y = (PREFERRED_HEIGHT / 2) - (PREFERRED_WIDTH * (Math.log(Math.tan((Math.PI / 4) + (Math.toRadians(LOCATION.getLatitude()) / 2)))) / (2 * Math.PI)) + MAP_OFFSET_Y; Circle locationIcon = new Circle(x, y, size * 0.01); locationIcon.setFill(null == LOCATION.getColor() ? getLocationColor() : LOCATION.getColor()); StringBuilder tooltipBuilder = new StringBuilder(); if (!LOCATION.getName().isEmpty()) tooltipBuilder.append(LOCATION.getName()); if (!LOCATION.getInfo().isEmpty()) tooltipBuilder.append("\n").append(LOCATION.getInfo()); String tooltipText = tooltipBuilder.toString(); if (!tooltipText.isEmpty()) { Tooltip tooltip = new Tooltip(tooltipText); tooltip.setFont(Font.font(10)); Tooltip.install(locationIcon, tooltip); } if (null != LOCATION.getMouseEnterHandler()) locationIcon.setOnMouseEntered(new WeakEventHandler<>(LOCATION.getMouseEnterHandler())); if (null != LOCATION.getMousePressHandler()) locationIcon.setOnMousePressed(new WeakEventHandler<>(LOCATION.getMousePressHandler())); if (null != LOCATION.getMouseReleaseHandler()) locationIcon.setOnMouseReleased(new WeakEventHandler<>(LOCATION.getMouseReleaseHandler())); if (null != LOCATION.getMouseExitHandler()) locationIcon.setOnMouseExited(new WeakEventHandler<>(LOCATION.getMouseExitHandler())); locations.put(LOCATION, locationIcon); }
Example 5
Source File: ImageViewTableCell.java From OpenLabeler with Apache License 2.0 | 6 votes |
@Override protected void updateItem(T item, boolean empty) { super.updateItem(item, empty); var image = Image.class.cast(item); imageView.setImage(image); if (image != null) { var popupImageView = new ImageView(image); popupImageView.setFitHeight(TOOLTIP_SIZE); popupImageView.setFitWidth(TOOLTIP_SIZE); popupImageView.setPreserveRatio(true); Tooltip tooltip = new Tooltip(""); tooltip.getStyleClass().add("imageTooltip"); tooltip.setShowDelay(Duration.millis(250)); tooltip.setGraphic(popupImageView); Tooltip.install(this, tooltip); } }
Example 6
Source File: ChartCanvas.java From ECG-Viewer with GNU General Public License v2.0 | 6 votes |
/** * Sets the tooltip text, with the (x, y) location being used for the * anchor. If the text is {@code null}, no tooltip will be displayed. * This method is intended for calling by the {@link TooltipHandlerFX} * class, you won't normally call it directly. * * @param text the text ({@code null} permitted). * @param x the x-coordinate of the mouse pointer. * @param y the y-coordinate of the mouse pointer. */ public void setTooltip(String text, double x, double y) { if (text != null) { if (this.tooltip == null) { this.tooltip = new Tooltip(text); Tooltip.install(this, this.tooltip); } else { this.tooltip.setText(text); this.tooltip.setAnchorX(x); this.tooltip.setAnchorY(y); } } else { Tooltip.uninstall(this, this.tooltip); this.tooltip = null; } }
Example 7
Source File: DefaultControlTreeItemGraphic.java From arma-dialog-creator with MIT License | 6 votes |
private void fillBox(Color color) { GraphicsContext gc = box.getGraphicsContext2D(); gc.save(); gc.clearRect(0, 0, box.getWidth(), box.getHeight()); gc.setFill(color); gc.fillRect(0, 0, box.getWidth(), box.getHeight()); gc.restore(); //generate hex string and bind it to tooltip final double f = 255.0; int r = (int) (color.getRed() * f); int g = (int) (color.getGreen() * f); int b = (int) (color.getBlue() * f); String opacity = DecimalFormat.getNumberInstance().format(color.getOpacity() * 100); Tooltip.install(box, new Tooltip(String.format( "red:%d, green:%d, blue:%d, opacity:%s%%", r, g, b, opacity)) ); }
Example 8
Source File: ClickableBitcoinAddress.java From GreenBits with GNU General Public License v3.0 | 6 votes |
public ClickableBitcoinAddress() { try { FXMLLoader loader = new FXMLLoader(getClass().getResource("bitcoin_address.fxml")); loader.setRoot(this); loader.setController(this); // The following line is supposed to help Scene Builder, although it doesn't seem to be needed for me. loader.setClassLoader(getClass().getClassLoader()); loader.load(); AwesomeDude.setIcon(copyWidget, AwesomeIcon.COPY); Tooltip.install(copyWidget, new Tooltip("Copy address to clipboard")); AwesomeDude.setIcon(qrCode, AwesomeIcon.QRCODE); Tooltip.install(qrCode, new Tooltip("Show a barcode scannable with a mobile phone for this address")); addressStr = convert(address); addressLabel.textProperty().bind(addressStr); } catch (IOException e) { throw new RuntimeException(e); } }
Example 9
Source File: AdvCandleStickChartSample.java From marathonv5 with Apache License 2.0 | 5 votes |
private Candle(String seriesStyleClass, String dataStyleClass) { setAutoSizeChildren(false); getChildren().addAll(highLowLine, bar); this.seriesStyleClass = seriesStyleClass; this.dataStyleClass = dataStyleClass; updateStyleClasses(); tooltip.setGraphic(new TooltipContent()); Tooltip.install(bar, tooltip); }
Example 10
Source File: CountryPath.java From charts with Apache License 2.0 | 5 votes |
public CountryPath(final String NAME, final String CONTENT) { super(); name = NAME; locale = new Locale("", NAME); tooltip = new Tooltip(locale.getDisplayCountry()); Tooltip.install(CountryPath.this, tooltip); if (null == CONTENT) return; setContent(CONTENT); }
Example 11
Source File: PanelMenuBar.java From HubTurbo with GNU Lesser General Public License v3.0 | 5 votes |
/** * Augments components of PanelMenuBar when the renaming of the panel happens. * The confirm button and the undo button are added to the panel. */ private void augmentRenameableTextField() { menuBarNameArea.getChildren().remove(nameBox); this.getChildren().removeAll(menuBarRenameButton, menuBarCloseButton); menuBarNameArea.getChildren().addAll(renameableTextField); Tooltip.install(menuBarConfirmButton, new Tooltip("Confirm this name change")); Tooltip undoTip = new Tooltip("Abandon this name change and go back to the previous name"); undoTip.setPrefWidth(TOOLTIP_WRAP_WIDTH); Tooltip.install(menuBarUndoButton, undoTip); this.getChildren().addAll(menuBarConfirmButton, menuBarUndoButton); }
Example 12
Source File: HeroToken.java From metastone with GNU General Public License v2.0 | 5 votes |
private void updateHeroPower(Hero hero) { Image heroPowerImage = new Image(IconFactory.getHeroPowerIconUrl(hero.getHeroPower())); heroPowerIcon.setImage(heroPowerImage); Card card = CardCatalogue.getCardById(hero.getHeroPower().getCardId()); Tooltip tooltip = new Tooltip(); CardTooltip tooltipContent = new CardTooltip(); tooltipContent.setCard(card); tooltip.setGraphic(tooltipContent); Tooltip.install(heroPowerIcon, tooltip); }
Example 13
Source File: PanelMenuBar.java From HubTurbo with GNU Lesser General Public License v3.0 | 5 votes |
private HBox createCloseButton() { HBox closeArea = new HBox(); closeButton = new Label(OCTICON_CLOSE_PANEL); closeButton.setId(IdGenerator.getPanelCloseButtonId(panel.panelIndex)); closeButton.getStyleClass().addAll("octicon", "label-button"); closeButton.setOnMouseClicked((e) -> { e.consume(); panel.parentPanelControl.closePanel(panel.panelIndex); }); Tooltip.install(closeArea, new Tooltip("Close this panel")); closeArea.getChildren().add(closeButton); return closeArea; }
Example 14
Source File: DepositView.java From bisq with GNU Affero General Public License v3.0 | 4 votes |
@Override public void initialize() { paymentLabelString = Res.get("funds.deposit.fundBisqWallet"); addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address"))); balanceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.balanceWithCur", Res.getBaseCurrencyCode()))); confirmationsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.confirmations"))); usageColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.usage"))); // trigger creation of at least 1 savings address walletService.getFreshAddressEntry(); tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); tableView.setPlaceholder(new AutoTooltipLabel(Res.get("funds.deposit.noAddresses"))); tableViewSelectionListener = (observableValue, oldValue, newValue) -> { if (newValue != null) { fillForm(newValue.getAddressString()); GUIUtil.requestFocus(amountTextField); } }; setAddressColumnCellFactory(); setBalanceColumnCellFactory(); setUsageColumnCellFactory(); setConfidenceColumnCellFactory(); addressColumn.setComparator(Comparator.comparing(DepositListItem::getAddressString)); balanceColumn.setComparator(Comparator.comparing(DepositListItem::getBalanceAsCoin)); confirmationsColumn.setComparator(Comparator.comparingDouble(o -> o.getTxConfidenceIndicator().getProgress())); usageColumn.setComparator(Comparator.comparingInt(DepositListItem::getNumTxOutputs)); tableView.getSortOrder().add(usageColumn); tableView.setItems(sortedList); titledGroupBg = addTitledGroupBg(gridPane, gridRow, 4, Res.get("funds.deposit.fundWallet")); titledGroupBg.getStyleClass().add("last"); qrCodeImageView = new ImageView(); qrCodeImageView.getStyleClass().add("qr-code"); Tooltip.install(qrCodeImageView, new Tooltip(Res.get("shared.openLargeQRWindow"))); qrCodeImageView.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute( () -> UserThread.runAfter( () -> new QRCodeWindow(getBitcoinURI()).show(), 200, TimeUnit.MILLISECONDS))); GridPane.setRowIndex(qrCodeImageView, gridRow); GridPane.setRowSpan(qrCodeImageView, 4); GridPane.setColumnIndex(qrCodeImageView, 1); GridPane.setMargin(qrCodeImageView, new Insets(Layout.FIRST_ROW_DISTANCE, 0, 0, 10)); gridPane.getChildren().add(qrCodeImageView); addressTextField = addAddressTextField(gridPane, ++gridRow, Res.get("shared.address"), Layout.FIRST_ROW_DISTANCE); addressTextField.setPaymentLabel(paymentLabelString); amountTextField = addInputTextField(gridPane, ++gridRow, Res.get("funds.deposit.amount")); amountTextField.setMaxWidth(380); if (DevEnv.isDevMode()) amountTextField.setText("10"); titledGroupBg.setVisible(false); titledGroupBg.setManaged(false); qrCodeImageView.setVisible(false); qrCodeImageView.setManaged(false); addressTextField.setVisible(false); addressTextField.setManaged(false); amountTextField.setManaged(false); generateNewAddressButton = addButton(gridPane, ++gridRow, Res.get("funds.deposit.generateAddress"), -20); GridPane.setColumnIndex(generateNewAddressButton, 0); GridPane.setHalignment(generateNewAddressButton, HPos.LEFT); generateNewAddressButton.setOnAction(event -> { boolean hasUnUsedAddress = observableList.stream().anyMatch(e -> e.getNumTxOutputs() == 0); if (hasUnUsedAddress) { new Popup().warning(Res.get("funds.deposit.selectUnused")).show(); } else { AddressEntry newSavingsAddressEntry = walletService.getFreshAddressEntry(); updateList(); observableList.stream() .filter(depositListItem -> depositListItem.getAddressString().equals(newSavingsAddressEntry.getAddressString())) .findAny() .ifPresent(depositListItem -> tableView.getSelectionModel().select(depositListItem)); } }); balanceListener = new BalanceListener() { @Override public void onBalanceChanged(Coin balance, Transaction tx) { updateList(); } }; GUIUtil.focusWhenAddedToScene(amountTextField); }
Example 15
Source File: FileChooserEditableFactory.java From AsciidocFX with Apache License 2.0 | 4 votes |
@Override public FXFormNode call(Void param) { String promptText = "Enter local path or URL"; textField.setPromptText(promptText); tooltip.setText(promptText); textField.setDisable(false); selectButton.setText("Change"); editButton.setText("Edit"); browseButton.setText("Browse"); textField.setOnMouseEntered(event -> { Optional.of(textField).filter(e -> !e.isFocused()) .map(TextField::getText) .ifPresent(text -> textField.positionCaret(text.length())); }); textField.setOnMouseExited(event -> { if (!textField.isFocused()) textField.positionCaret(0); }); textField.textProperty().bindBidirectional(property); property.addListener((observable, oldValue, newValue) -> { if (Objects.nonNull(newValue)) { tooltip.setText(newValue); if (newValue.isEmpty()) { property.set(null); } } }); browseButton.visibleProperty().bind(property.isNotNull()); browseButton.managedProperty().bind(property.isNotNull()); editButton.visibleProperty().bind(property.isNotNull()); editButton.managedProperty().bind(property.isNotNull()); selectButton.setOnAction(event -> { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle(promptText); File openDialog = fileChooser.showOpenDialog(null); if (Objects.nonNull(openDialog)) { property.setValue(openDialog.toPath().toString()); } }); HBox hBox = new HBox(5); hBox.getChildren().addAll(textField, selectButton, editButton, browseButton); HBox.setHgrow(textField, Priority.ALWAYS); Tooltip.install(textField, tooltip); return new FXFormNodeWrapper(hBox, property); }
Example 16
Source File: CheckItemBuilt.java From AsciidocFX with Apache License 2.0 | 4 votes |
public CheckItemBuilt tip(String tipText) { Tooltip tooltip = new Tooltip(tipText); Tooltip.install(menuItem.getGraphic(), tooltip); return this; }
Example 17
Source File: AmpSkin.java From Medusa with Apache License 2.0 | 4 votes |
private void initGraphics() { // Set initial size if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 || Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) { if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) { gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight()); } else { gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); } } ticksAndSectionsCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT); ticksAndSections = ticksAndSectionsCanvas.getGraphicsContext2D(); ledCanvas = new Canvas(); led = ledCanvas.getGraphicsContext2D(); thresholdTooltip = new Tooltip("Threshold\n(" + String.format(locale, formatString, gauge.getThreshold()) + ")"); thresholdTooltip.setTextAlignment(TextAlignment.CENTER); threshold = new Path(); Helper.enableNode(threshold, gauge.isThresholdVisible()); Tooltip.install(threshold, thresholdTooltip); average = new Path(); Helper.enableNode(average, gauge.isAverageVisible()); markerPane = new Pane(); needleRotate = new Rotate(180 - START_ANGLE); needleRotate.setAngle(needleRotate.getAngle() + (gauge.getValue() - oldValue - gauge.getMinValue()) * angleStep); needleMoveTo1 = new MoveTo(); needleCubicCurveTo2 = new CubicCurveTo(); needleCubicCurveTo3 = new CubicCurveTo(); needleCubicCurveTo4 = new CubicCurveTo(); needleLineTo5 = new LineTo(); needleCubicCurveTo6 = new CubicCurveTo(); needleClosePath7 = new ClosePath(); needle = new Path(needleMoveTo1, needleCubicCurveTo2, needleCubicCurveTo3, needleCubicCurveTo4, needleLineTo5, needleCubicCurveTo6, needleClosePath7); needle.setFillRule(FillRule.EVEN_ODD); needle.getTransforms().setAll(needleRotate); dropShadow = new DropShadow(); dropShadow.setColor(Color.rgb(0, 0, 0, 0.25)); dropShadow.setBlurType(BlurType.TWO_PASS_BOX); dropShadow.setRadius(0.015 * PREFERRED_WIDTH); dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH); shadowGroup = new Group(needle); shadowGroup.setEffect(gauge.isShadowsEnabled() ? dropShadow : null); titleText = new Text(gauge.getTitle()); titleText.setTextOrigin(VPos.CENTER); titleText.setFill(gauge.getTitleColor()); Helper.enableNode(titleText, !gauge.getTitle().isEmpty()); unitText = new Text(gauge.getUnit()); unitText.setMouseTransparent(true); unitText.setTextOrigin(VPos.CENTER); lcd = new Rectangle(0.3 * PREFERRED_WIDTH, 0.1 * PREFERRED_HEIGHT); lcd.setArcWidth(0.0125 * PREFERRED_HEIGHT); lcd.setArcHeight(0.0125 * PREFERRED_HEIGHT); lcd.relocate((PREFERRED_WIDTH - lcd.getWidth()) * 0.5, 0.44 * PREFERRED_HEIGHT); Helper.enableNode(lcd, gauge.isLcdVisible() && gauge.isValueVisible()); lcdText = new Label(String.format(locale, "%." + gauge.getDecimals() + "f", gauge.getValue())); lcdText.setAlignment(Pos.CENTER_RIGHT); lcdText.setVisible(gauge.isValueVisible()); // Set initial value angleStep = ANGLE_RANGE / gauge.getRange(); double targetAngle = 180 - START_ANGLE + (gauge.getValue() - gauge.getMinValue()) * angleStep; targetAngle = clamp(180 - START_ANGLE, 180 - START_ANGLE + ANGLE_RANGE, targetAngle); needleRotate.setAngle(targetAngle); lightEffect = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(255, 255, 255, 0.65), 2, 0.0, 0.0, 2.0); foreground = new SVGPath(); foreground.setContent("M 26 26.5 C 26 20.2432 26.2432 20 32.5 20 L 277.5 20 C 283.7568 20 284 20.2432 284 26.5 L 284 143.5 C 284 149.7568 283.7568 150 277.5 150 L 32.5 150 C 26.2432 150 26 149.7568 26 143.5 L 26 26.5 ZM 0 6.7241 L 0 253.2758 C 0 260 0 260 6.75 260 L 303.25 260 C 310 260 310 260 310 253.2758 L 310 6.7241 C 310 0 310 0 303.25 0 L 6.75 0 C 0 0 0 0 0 6.7241 Z"); foreground.setEffect(lightEffect); // Add all nodes pane = new Pane(); pane.getChildren().setAll(ticksAndSectionsCanvas, markerPane, ledCanvas, unitText, lcd, lcdText, shadowGroup, foreground, titleText); getChildren().setAll(pane); }
Example 18
Source File: AddressTextField.java From bisq with GNU Affero General Public License v3.0 | 4 votes |
public AddressTextField(String label) { JFXTextField textField = new BisqTextField(); textField.setId("address-text-field"); textField.setEditable(false); textField.setLabelFloat(true); textField.setPromptText(label); textField.textProperty().bind(address); String tooltipText = Res.get("addressTextField.openWallet"); textField.setTooltip(new Tooltip(tooltipText)); textField.setOnMousePressed(event -> wasPrimaryButtonDown = event.isPrimaryButtonDown()); textField.setOnMouseReleased(event -> { if (wasPrimaryButtonDown) GUIUtil.showFeeInfoBeforeExecute(AddressTextField.this::openWallet); wasPrimaryButtonDown = false; }); textField.focusTraversableProperty().set(focusTraversableProperty().get()); //TODO app wide focus //focusedProperty().addListener((ov, oldValue, newValue) -> textField.requestFocus()); Label extWalletIcon = new Label(); extWalletIcon.setLayoutY(3); extWalletIcon.getStyleClass().addAll("icon", "highlight"); extWalletIcon.setTooltip(new Tooltip(tooltipText)); AwesomeDude.setIcon(extWalletIcon, AwesomeIcon.SIGNIN); extWalletIcon.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(this::openWallet)); Label copyIcon = new Label(); copyIcon.setLayoutY(3); copyIcon.getStyleClass().addAll("icon", "highlight"); Tooltip.install(copyIcon, new Tooltip(Res.get("addressTextField.copyToClipboard"))); AwesomeDude.setIcon(copyIcon, AwesomeIcon.COPY); copyIcon.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(() -> { if (address.get() != null && address.get().length() > 0) Utilities.copyToClipboard(address.get()); })); AnchorPane.setRightAnchor(copyIcon, 30.0); AnchorPane.setRightAnchor(extWalletIcon, 5.0); AnchorPane.setRightAnchor(textField, 55.0); AnchorPane.setLeftAnchor(textField, 0.0); getChildren().addAll(textField, copyIcon, extWalletIcon); }
Example 19
Source File: ViewController.java From hibernate-demos with Apache License 2.0 | 4 votes |
@Override public void initialize(final URL location, final ResourceBundle resources) { final ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); final Model model = new Model(); final Validator validator = factory.getValidator(); nameErrorTooltip = new Tooltip(); Tooltip.install( nameErrorNode, nameErrorTooltip ); countErrorTooltip = new Tooltip(); Tooltip.install( countErrorNode, countErrorTooltip ); tagErrorTooltip = new Tooltip(); Tooltip.install( tagErrorNode, tagErrorTooltip ); nameField.textProperty().bindBidirectional(model.nameProperty()); model.countProperty().bind(Bindings.createObjectBinding(() -> countSlider.valueProperty().intValue(), countSlider.valueProperty())); tagListView.itemsProperty().bind(model.tagsProperty()); tagListView.setCellFactory(e -> new ValidatorCell(validator)); addTagButton.setOnAction(e -> model.tagsProperty().add(tagNameField.getText())); nameErrorNode.visibleProperty().bind(Bindings.createBooleanBinding(() -> !validator.validateProperty(model, "name").isEmpty(), model.nameProperty())); nameErrorTooltip.textProperty().bind( Bindings.createStringBinding( () -> validator.validateProperty(model, "name") .stream() .map( cv -> cv.getMessage() ) .collect( Collectors.joining() ), model.nameProperty() ) ); countErrorNode.visibleProperty().bind(Bindings.createBooleanBinding(() -> !validator.validateProperty(model, "count").isEmpty(), model.countProperty())); countErrorTooltip.textProperty().bind( Bindings.createStringBinding( () -> validator.validateProperty(model, "count") .stream() .map( cv -> cv.getMessage() ) .collect( Collectors.joining() ), model.countProperty() ) ); tagErrorNode.visibleProperty().bind(Bindings.createBooleanBinding(() -> !validator.validateProperty(model, "tags").isEmpty(), model.tagsProperty())); tagErrorTooltip.textProperty().bind( Bindings.createStringBinding( () -> validator.validateProperty(model, "tags") .stream() .map( cv -> cv.getMessage() ) .collect( Collectors.joining() ), model.tagsProperty() ) ); }
Example 20
Source File: MenuItemBuilt.java From AsciidocFX with Apache License 2.0 | 4 votes |
public MenuItemBuilt tip(String tipText) { Tooltip tooltip = new Tooltip(tipText); Tooltip.install(menuItem.getGraphic(), tooltip); return this; }